From 72097fc30ecbe47f5e70d19c9bb19a30c280313d Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 25 Aug 2015 23:38:49 +0300 Subject: [PATCH] Added support for multiline options for routers and filters. --- server/core/config.c | 23 +++++++++++++++++++++++ server/inih/CMakeLists.txt | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/server/core/config.c b/server/core/config.c index acf133a92..00ba5f93f 100644 --- a/server/core/config.c +++ b/server/core/config.c @@ -174,12 +174,35 @@ CONFIG_PARAMETER *param, *p1; { if (!strcmp(p1->name, name)) { + if(strcmp(name,"router_options") == 0 || strcmp(name,"options")) + { + char* tmp; + + if((tmp = malloc(sizeof(char) * (strlen(p1->value) + strlen(value) + 2))) == NULL) + { + skygw_log_write(LE,"[%s] Error: Memory allocation failed.",__FUNCTION__); + return 0; + } + strcpy(tmp,p1->value); + strcat(tmp,value); + free(p1->value); + p1->value = tmp; + if(p1->qfd_param_type == STRING_TYPE && p1->qfd.valstr != NULL) + { + free(p1->qfd.valstr); + p1->qfd.valstr = strdup(p1->value); + } + return 1; + } + else + { LOGIF(LE, (skygw_log_write_flush( LOGFILE_ERROR, "Error : Configuration object '%s' has multiple " "parameters names '%s'.", ptr->object, name))); return 0; + } } p1 = p1->next; } diff --git a/server/inih/CMakeLists.txt b/server/inih/CMakeLists.txt index 95a17866e..11c37320a 100644 --- a/server/inih/CMakeLists.txt +++ b/server/inih/CMakeLists.txt @@ -1,2 +1,2 @@ -add_definitions(-DINI_MAX_LINE=1024) +add_definitions(-DINI_MAX_LINE=1024 -DINI_ALLOW_MULTILINE) add_library(inih ini.c)