From dcd82d3a33bea2a966902433d386001f08d78981 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Fri, 24 Jul 2015 12:19:22 +0300 Subject: [PATCH] Fixed errors and added logging. --- server/core/service.c | 20 ++++---------------- server/core/users.c | 19 +++++++++++++++---- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/server/core/service.c b/server/core/service.c index ce7e8e9fa..224a602b3 100644 --- a/server/core/service.c +++ b/server/core/service.c @@ -330,7 +330,7 @@ GWPROTOCOL *funcs; "Loaded %d MySQL Users for service [%s].", loaded, service->name))); } - } + } else { if (service->users == NULL) { @@ -342,11 +342,7 @@ GWPROTOCOL *funcs; if ((funcs=(GWPROTOCOL *)load_module(port->protocol, MODULE_PROTOCOL)) == NULL) { - if (service->users->data) - { - hashtable_free(service->users->data); - } - free(service->users); + users_free(service->users); dcb_close(port->listener); port->listener = NULL; LOGIF(LE, (skygw_log_write_flush( @@ -381,11 +377,7 @@ GWPROTOCOL *funcs; "Error : Failed to create session to service %s.", service->name))); - if (service->users->data) - { - hashtable_free(service->users->data); - } - free(service->users); + users_free(service->users); dcb_close(port->listener); port->listener = NULL; goto retblock; @@ -399,11 +391,7 @@ GWPROTOCOL *funcs; port->port, port->protocol, service->name))); - if (service->users->data) - { - hashtable_free(service->users->data); - } - free(service->users); + users_free(service->users); dcb_close(port->listener); port->listener = NULL; } diff --git a/server/core/users.c b/server/core/users.c index 086a6b81c..62db14530 100644 --- a/server/core/users.c +++ b/server/core/users.c @@ -59,12 +59,16 @@ users_alloc() USERS *rval; if ((rval = calloc(1, sizeof(USERS))) == NULL) - return NULL; + { + skygw_log_write(LE,"[%s:%d] Error: Memory allocation failed.",__FUNCTION__,__LINE__); + return NULL; + } if ((rval->data = hashtable_alloc(USERS_HASHTABLE_DEFAULT_SIZE, user_hash, strcmp)) == NULL) { - free(rval); - return NULL; + skygw_log_write(LE,"[%s:%d] Error: Memory allocation failed.",__FUNCTION__,__LINE__); + free(rval); + return NULL; } hashtable_memory_fns(rval->data, (HASHMEMORYFN)strdup, (HASHMEMORYFN)strdup, (HASHMEMORYFN)free, (HASHMEMORYFN)free); @@ -80,8 +84,15 @@ USERS *rval; void users_free(USERS *users) { + if(users == NULL) + { + skygw_log_write(LE,"[%s:%d] Error: NULL parameter.",__FUNCTION__,__LINE__); + return; + } + + if(users->data) hashtable_free(users->data); - free(users); + free(users); } /**