dr_adaptive_odbc.c, cel_odbc.c, cel_pgsql.c: REFACTOR Macro LENGTHEN_BUF
authorRodrigo Ramírez Norambuena <a@rodrigoramirez.com>
Fri, 11 Sep 2015 06:52:15 +0000 (03:52 -0300)
committerRodrigo Ramírez Norambuena <a@rodrigoramirez.com>
Fri, 18 Sep 2015 15:51:59 +0000 (12:51 -0300)
Remove repeated code on macro of assigned buffer to SQL vars

Change-Id: Icb19ad013124498e172ea1d0b29ccd0ed17deef0

cdr/cdr_adaptive_odbc.c
cel/cel_odbc.c
cel/cel_pgsql.c

index 8bd9d0d..0da8c01 100644 (file)
@@ -358,11 +358,11 @@ static SQLHSTMT generic_prepare(struct odbc_obj *obj, void *data)
        return stmt;
 }
 
-#define LENGTHEN_BUF1(size)                                                                                                            \
+#define LENGTHEN_BUF(size, var_sql)                                                                                                            \
                        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 + 1) / 512 + 1) * 512) != 0) { \
+                               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 + 1) / 512 + 1) * 512) != 0) { \
                                                ast_log(LOG_ERROR, "Unable to allocate sufficient memory.  Insert CDR '%s:%s' failed.\n", tableptr->connection, tableptr->table); \
                                                ast_free(sql);                                                                                  \
                                                ast_free(sql2);                                                                                 \
@@ -372,18 +372,10 @@ static SQLHSTMT generic_prepare(struct odbc_obj *obj, void *data)
                                }                                                                                                                               \
                        } 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 '%s:%s' failed.\n", tableptr->connection, tableptr->table); \
-                                               ast_free(sql);                                                                                  \
-                                               ast_free(sql2);                                                                                 \
-                                               AST_RWLIST_UNLOCK(&odbc_tables);                                                \
-                                               return -1;                                                                                              \
-                                       }                                                                                                                       \
-                               }                                                                                                                               \
-                       } while (0)
+#define LENGTHEN_BUF1(size)    \
+       LENGTHEN_BUF(size, sql);
+#define LENGTHEN_BUF2(size)    \
+       LENGTHEN_BUF(size, sql2);
 
 static int odbc_log(struct ast_cdr *cdr)
 {
index 2d8408b..3c0be04 100644 (file)
@@ -341,11 +341,11 @@ static SQLHSTMT generic_prepare(struct odbc_obj *obj, void *data)
        return stmt;
 }
 
-#define LENGTHEN_BUF1(size)                                                                                                            \
+#define LENGTHEN_BUF(size, var_sql)                                                                                                            \
                        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 + 1) / 512 + 1) * 512) != 0) { \
+                               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 + 1) / 512 + 1) * 512) != 0) { \
                                                ast_log(LOG_ERROR, "Unable to allocate sufficient memory.  Insert CEL '%s:%s' failed.\n", tableptr->connection, tableptr->table); \
                                                ast_free(sql);                                                                                  \
                                                ast_free(sql2);                                                                                 \
@@ -355,18 +355,11 @@ static SQLHSTMT generic_prepare(struct odbc_obj *obj, void *data)
                                }                                                                                                                               \
                        } 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 CEL '%s:%s' failed.\n", tableptr->connection, tableptr->table); \
-                                               ast_free(sql);                                                                                  \
-                                               ast_free(sql2);                                                                                 \
-                                               AST_RWLIST_UNLOCK(&odbc_tables);                                                \
-                                               return;                                                                                                 \
-                                       }                                                                                                                       \
-                               }                                                                                                                               \
-                       } while (0)
+#define LENGTHEN_BUF1(size) \
+       LENGTHEN_BUF(size, sql);
+
+#define LENGTHEN_BUF2(size) \
+       LENGTHEN_BUF(size, sql2);
 
 static void odbc_log(struct ast_event *event)
 {
index f495947..e4e280e 100644 (file)
@@ -100,11 +100,11 @@ struct columns {
 
 static AST_RWLIST_HEAD_STATIC(psql_columns, columns);
 
-#define LENGTHEN_BUF1(size) \
+#define LENGTHEN_BUF(size, var_sql) \
        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) { \
+               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 CEL '%s:%s' failed.\n", pghostname, table); \
                                ast_free(sql); \
                                ast_free(sql2); \
@@ -114,18 +114,10 @@ static AST_RWLIST_HEAD_STATIC(psql_columns, columns);
                } \
        } while (0)
 
+#define LENGTHEN_BUF1(size) \
+       LENGTHEN_BUF(size, sql);
 #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 CEL '%s:%s' failed.\n", pghostname, table); \
-                               ast_free(sql); \
-                               ast_free(sql2); \
-                               AST_RWLIST_UNLOCK(&psql_columns); \
-                               return; \
-                       } \
-               } \
-       } while (0)
+       LENGTHEN_BUF(size, sql2);
 
 static void pgsql_reconnect(void)
 {