TT#14211 fix sql queries getting truncated on long call-ids

also enabled gcc optimizations

Change-Id: I773088d6f46add6f4a54e04a61e611b5d0d8b808
(cherry picked from commit bd2ac84931)
(cherry picked from commit 37d10ae65d)
changes/83/12583/1
Richard Fuchs 9 years ago
parent 30ceeeca89
commit 36ecd07969

@ -3,7 +3,7 @@ BIN=mediator
CC := gcc
GLIB_CFLAGS := `pkg-config glib-2.0 --cflags`
CFLAGS := -I/usr/include/mysql $(GLIB_CFLAGS) -g -Wall
CFLAGS := -I/usr/include/mysql $(GLIB_CFLAGS) -g -Wall -O2
#CFLAGS += -DWITH_TIME_CALC
GLIB_LDFLAGS := `pkg-config glib-2.0 --libs`

@ -2,6 +2,7 @@
#include <m_string.h>
#include <mysql.h>
#include <mysql/errmsg.h>
#include <assert.h>
#include "medmysql.h"
#include "config.h"
@ -185,18 +186,18 @@ int medmysql_fetch_callids(med_callid_t **callids, u_int64_t *count)
{
MYSQL_RES *res;
MYSQL_ROW row;
char query[1024] = "";
/* char query[1024] = ""; */
size_t callid_size;
u_int64_t i = 0;
int ret = 0;
*count = 0;
g_strlcpy(query, MED_CALLID_QUERY, sizeof(query));
/* g_strlcpy(query, MED_CALLID_QUERY, sizeof(query)); */
/*syslog(LOG_DEBUG, "q='%s'", query);*/
if(mysql_query_wrapper(med_handler, query, strlen(query)) != 0)
if(mysql_query_wrapper(med_handler, MED_CALLID_QUERY, strlen(MED_CALLID_QUERY)) != 0)
{
syslog(LOG_CRIT, "Error getting acc callids: %s",
mysql_error(med_handler));
@ -247,21 +248,24 @@ int medmysql_fetch_records(med_callid_t *callid,
{
MYSQL_RES *res;
MYSQL_ROW row;
char query[1024] = "";
char query[strlen(MED_FETCH_QUERY) + sizeof(callid->value) * 5 + 1];
size_t entry_size;
u_int64_t i = 0;
int ret = 0;
int len;
*count = 0;
snprintf(query, sizeof(query), MED_FETCH_QUERY,
callid->value,
callid->value, callid->value,
callid->value, callid->value);
len = snprintf(query, sizeof(query), MED_FETCH_QUERY,
callid->value,
callid->value, callid->value,
callid->value, callid->value);
assert(len < sizeof(query)); /* truncated - internal bug */
/*syslog(LOG_DEBUG, "q='%s'", query);*/
if(mysql_query_wrapper(med_handler, query, strlen(query)) != 0)
if(mysql_query_wrapper(med_handler, query, len) != 0)
{
syslog(LOG_CRIT, "Error getting acc records for callid '%s': %s",
callid->value, mysql_error(med_handler));
@ -600,12 +604,12 @@ int medmysql_load_maps(GHashTable *ip_table, GHashTable *host_table, GHashTable
MYSQL_RES *res;
MYSQL_ROW row;
int ret = 0;
char query[1024] = "";
/* char query[1024] = ""; */
snprintf(query, sizeof(query), MED_LOAD_PEER_QUERY);
/* snprintf(query, sizeof(query), MED_LOAD_PEER_QUERY); */
/* syslog(LOG_DEBUG, "q='%s'", query); */
if(mysql_query_wrapper(prov_handler, query, strlen(query)) != 0)
if(mysql_query_wrapper(prov_handler, MED_LOAD_PEER_QUERY, strlen(MED_LOAD_PEER_QUERY)) != 0)
{
syslog(LOG_CRIT, "Error loading peer hosts: %s",
mysql_error(prov_handler));
@ -652,14 +656,14 @@ int medmysql_load_uuids(GHashTable *uuid_table)
MYSQL_RES *res;
MYSQL_ROW row;
int ret = 0;
char query[1024] = "";
/* char query[1024] = ""; */
gpointer key;
char *provider_id;
snprintf(query, sizeof(query), MED_LOAD_UUID_QUERY);
/* snprintf(query, sizeof(query), MED_LOAD_UUID_QUERY); */
/* syslog(LOG_DEBUG, "q='%s'", query); */
if(mysql_query_wrapper(prov_handler, query, strlen(query)) != 0)
if(mysql_query_wrapper(prov_handler, MED_LOAD_UUID_QUERY, strlen(MED_LOAD_UUID_QUERY)) != 0)
{
syslog(LOG_CRIT, "Error loading uuids: %s",
mysql_error(prov_handler));

Loading…
Cancel
Save