Fixed errors and added logging.

This commit is contained in:
Markus Makela
2015-07-24 12:19:22 +03:00
parent 90b20a7459
commit dcd82d3a33
2 changed files with 19 additions and 20 deletions

View File

@ -342,11 +342,7 @@ GWPROTOCOL *funcs;
if ((funcs=(GWPROTOCOL *)load_module(port->protocol, MODULE_PROTOCOL)) if ((funcs=(GWPROTOCOL *)load_module(port->protocol, MODULE_PROTOCOL))
== NULL) == NULL)
{ {
if (service->users->data) users_free(service->users);
{
hashtable_free(service->users->data);
}
free(service->users);
dcb_close(port->listener); dcb_close(port->listener);
port->listener = NULL; port->listener = NULL;
LOGIF(LE, (skygw_log_write_flush( LOGIF(LE, (skygw_log_write_flush(
@ -381,11 +377,7 @@ GWPROTOCOL *funcs;
"Error : Failed to create session to service %s.", "Error : Failed to create session to service %s.",
service->name))); service->name)));
if (service->users->data) users_free(service->users);
{
hashtable_free(service->users->data);
}
free(service->users);
dcb_close(port->listener); dcb_close(port->listener);
port->listener = NULL; port->listener = NULL;
goto retblock; goto retblock;
@ -399,11 +391,7 @@ GWPROTOCOL *funcs;
port->port, port->port,
port->protocol, port->protocol,
service->name))); service->name)));
if (service->users->data) users_free(service->users);
{
hashtable_free(service->users->data);
}
free(service->users);
dcb_close(port->listener); dcb_close(port->listener);
port->listener = NULL; port->listener = NULL;
} }

View File

@ -59,12 +59,16 @@ users_alloc()
USERS *rval; USERS *rval;
if ((rval = calloc(1, sizeof(USERS))) == NULL) 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) if ((rval->data = hashtable_alloc(USERS_HASHTABLE_DEFAULT_SIZE, user_hash, strcmp)) == NULL)
{ {
free(rval); skygw_log_write(LE,"[%s:%d] Error: Memory allocation failed.",__FUNCTION__,__LINE__);
return NULL; free(rval);
return NULL;
} }
hashtable_memory_fns(rval->data, (HASHMEMORYFN)strdup, (HASHMEMORYFN)strdup, (HASHMEMORYFN)free, (HASHMEMORYFN)free); hashtable_memory_fns(rval->data, (HASHMEMORYFN)strdup, (HASHMEMORYFN)strdup, (HASHMEMORYFN)free, (HASHMEMORYFN)free);
@ -80,8 +84,15 @@ USERS *rval;
void void
users_free(USERS *users) 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); hashtable_free(users->data);
free(users); free(users);
} }
/** /**