From 2fb45c7801cbb543b1be1efe400d255f3e8c9ce9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?= Date: Sat, 23 Jan 2016 14:41:38 -0300 Subject: [PATCH] cdr_pgsql.cl: REFACTOR Macro LENGTHEN_BUF Remove repeated code on macro of assigned buffer to SQL vars. Add table and connection name to log error message when is not possible allocate memory. Change-Id: I1fbf37d286a032d38fdda72a9f736356956c9ffe --- cdr/cdr_pgsql.c | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c index 8dc49e1071..aec2116503 100644 --- a/cdr/cdr_pgsql.c +++ b/cdr/cdr_pgsql.c @@ -101,35 +101,26 @@ struct columns { static AST_RWLIST_HEAD_STATIC(psql_columns, columns); -#define LENGTHEN_BUF1(size) \ - do { \ - /* Lengthen buffer, if necessary */ \ - if (ast_str_strlen(sql) + size + 1 > ast_str_size(sql)) { \ - if (ast_str_make_space(&sql, ((ast_str_size(sql) + size + 3) / 512 + 1) * 512) != 0) { \ - ast_log(LOG_ERROR, "Unable to allocate sufficient memory. Insert CDR failed.\n"); \ - ast_free(sql); \ - ast_free(sql2); \ - AST_RWLIST_UNLOCK(&psql_columns); \ - ast_mutex_unlock(&pgsql_lock); \ - return -1; \ - } \ - } \ - } while (0) - -#define LENGTHEN_BUF2(size) \ - do { \ - if (ast_str_strlen(sql2) + size + 1 > ast_str_size(sql2)) { \ - if (ast_str_make_space(&sql2, ((ast_str_size(sql2) + size + 3) / 512 + 1) * 512) != 0) { \ - ast_log(LOG_ERROR, "Unable to allocate sufficient memory. Insert CDR failed.\n"); \ - ast_free(sql); \ - ast_free(sql2); \ +#define LENGTHEN_BUF(size, var_sql) \ + do { \ + /* Lengthen buffer, if necessary */ \ + if (ast_str_strlen(var_sql) + size + 1 > ast_str_size(var_sql)) { \ + if (ast_str_make_space(&var_sql, ((ast_str_size(var_sql) + size + 3) / 512 + 1) * 512) != 0) { \ + ast_log(LOG_ERROR, "Unable to allocate sufficient memory. Insert CDR '%s:%s' failed.\n", pghostname, table); \ + ast_free(sql); \ + ast_free(sql2); \ AST_RWLIST_UNLOCK(&psql_columns); \ - ast_mutex_unlock(&pgsql_lock); \ - return -1; \ - } \ - } \ + ast_mutex_unlock(&pgsql_lock); \ + return -1; \ + } \ + } \ } while (0) +#define LENGTHEN_BUF1(size) \ + LENGTHEN_BUF(size, sql); +#define LENGTHEN_BUF2(size) \ + LENGTHEN_BUF(size, sql2); + /*! \brief Handle the CLI command cdr show pgsql status */ static char *handle_cdr_pgsql_status(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) { -- 2.47.2