From: Daniel Swarbrick Date: Mon, 3 Jan 2011 21:09:46 +0000 (+0100) Subject: use switch_zmalloc() instead of apr pools for short term storage, rename a couple... X-Git-Tag: v1.2-rc1~223^2~2^2^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b7fd76d3de084e581e994ffa171d1f6653a4d55;p=thirdparty%2Ffreeswitch.git use switch_zmalloc() instead of apr pools for short term storage, rename a couple of funcs to be clearer as to their purpose --- diff --git a/src/mod/event_handlers/mod_cdr_pg_csv/mod_cdr_pg_csv.c b/src/mod/event_handlers/mod_cdr_pg_csv/mod_cdr_pg_csv.c index e515f8db19..9cc1d8cf2c 100644 --- a/src/mod/event_handlers/mod_cdr_pg_csv/mod_cdr_pg_csv.c +++ b/src/mod/event_handlers/mod_cdr_pg_csv/mod_cdr_pg_csv.c @@ -139,7 +139,7 @@ static void do_rotate(cdr_fd_t *fd) } -static void write_cdr(const char *path, const char *log_line) +static void spool_cdr(const char *path, const char *log_line) { cdr_fd_t *fd = NULL; char *log_line_lf = NULL; @@ -157,12 +157,11 @@ static void write_cdr(const char *path, const char *log_line) } if (end_of(log_line) != '\n') { - size_t len = strlen(log_line) + 2; - log_line_lf = switch_core_alloc(globals.pool, len); - switch_snprintf(log_line_lf, len, "%s\n", log_line); + log_line_lf = switch_mprintf("%s\n", log_line); } else { - log_line_lf = switch_core_strdup(globals.pool, log_line); + switch_strdup(log_line_lf, log_line); } + assert(log_line_lf); switch_mutex_lock(fd->mutex); bytes_out = (unsigned) strlen(log_line_lf); @@ -192,9 +191,10 @@ static void write_cdr(const char *path, const char *log_line) end: switch_mutex_unlock(fd->mutex); + switch_safe_free(log_line_lf); } -static switch_status_t save_cdr(const char * const template, const char * const cdr) +static switch_status_t insert_cdr(const char * const template, const char * const cdr) { char *columns, *values; char *p, *q; @@ -210,7 +210,7 @@ static switch_status_t save_cdr(const char * const template, const char * const } /* Build comma-separated list of field names by dropping $ { } ; chars */ - columns = strdup(template); + switch_strdup(columns, template); for (p = columns, q = columns; *p; ++p) { switch (*p) { case '$': case '"': case '{': case '}': case ';': @@ -226,7 +226,7 @@ static switch_status_t save_cdr(const char * const template, const char * const * for correct PostgreSQL syntax, and replace semi-colon with space to * prevent SQL injection attacks */ - values = strdup(cdr); + switch_strdup(values, cdr); for (p = values; *p; ++p) { switch(*p) { case '"': @@ -260,7 +260,7 @@ static switch_status_t save_cdr(const char * const template, const char * const nullCounter *= 4; vlen += nullCounter; - nullValues = (char *) malloc(strlen(values) + nullCounter + 1); + switch_zmalloc(nullValues, strlen(values) + nullCounter + 1); charCounter = 0; temp = nullValues; tp = nullValues; @@ -366,11 +366,11 @@ static switch_status_t save_cdr(const char * const template, const char * const if (!strcasecmp(globals.spool_format, "sql")) { path = switch_mprintf("%s%scdr-spool.sql", globals.log_dir, SWITCH_PATH_SEPARATOR); assert(path); - write_cdr(path, sql); + spool_cdr(path, sql); } else { path = switch_mprintf("%s%scdr-spool.csv", globals.log_dir, SWITCH_PATH_SEPARATOR); assert(path); - write_cdr(path, cdr); + spool_cdr(path, cdr); } switch_safe_free(path); @@ -433,7 +433,7 @@ static switch_status_t my_on_reporting(switch_core_session_t *session) return SWITCH_STATUS_FALSE; } - save_cdr(template_str, expanded_vars); + insert_cdr(template_str, expanded_vars); if (expanded_vars != template_str) { switch_safe_free(expanded_vars);