diff options
author | Rodrigo Ramírez Norambuena <a@rodrigoramirez.com> | 2016-01-23 14:41:38 -0300 |
---|---|---|
committer | Rodrigo Ramírez Norambuena <a@rodrigoramirez.com> | 2016-01-23 14:41:38 -0300 |
commit | 2fb45c7801cbb543b1be1efe400d255f3e8c9ce9 (patch) | |
tree | b430f330dc0b83004d38c5f2994e93eaa67ba8df /cdr | |
parent | 9a67730d79bb6bd1fe36c434d0990ae1394b84f5 (diff) |
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
Diffstat (limited to 'cdr')
-rw-r--r-- | cdr/cdr_pgsql.c | 43 |
1 files changed, 17 insertions, 26 deletions
diff --git a/cdr/cdr_pgsql.c b/cdr/cdr_pgsql.c index 8dc49e107..aec211650 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) { |