diff --git a/server/dial_data.c b/server/dial_data.c index 1ef8192..2a8c6c3 100644 --- a/server/dial_data.c +++ b/server/dial_data.c @@ -87,3 +87,15 @@ DIALData *retrieve_dial_data(char *app_name) { return result; } +void free_dial_data(DIALData **dialData) +{ + DIALData *curNode=NULL; + while (*dialData != NULL) { + curNode = *dialData; + *dialData =curNode->next; + + free(curNode->key); + free(curNode->value); + free(curNode); + } +} diff --git a/server/dial_data.h b/server/dial_data.h index e7fd9fe..55a5c7d 100644 --- a/server/dial_data.h +++ b/server/dial_data.h @@ -60,4 +60,6 @@ DIALData *retrieve_dial_data(char *app_name); void set_dial_data_dir(const char *data_dir); +void free_dial_data(DIALData **dialData); + #endif /* SRC_SERVER_DIAL_DATA_H_ */ diff --git a/server/dial_server.c b/server/dial_server.c index 101a4d5..4e64748 100644 --- a/server/dial_server.c +++ b/server/dial_server.c @@ -383,9 +383,11 @@ static void handle_dial_data(struct mg_connection *conn, return; } + + free_dial_data(&app->dial_data); + app->dial_data = parse_params(body); store_dial_data(app->name, app->dial_data); - free(app->dial_data); mg_printf(conn, "HTTP/1.1 200 OK\r\n" "Access-Control-Allow-Origin: %s\r\n"