mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-10-14 02:22:03 +08:00
made macro usage safer
That solves an issue where the pid_file would be overwritten on a configuration file reload.
This commit is contained in:
+12
-12
@@ -158,7 +158,7 @@ unsigned j;
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define READ_MULTI_LINE(name, s_name, num) \
|
#define READ_MULTI_LINE(name, s_name, num) { \
|
||||||
val = get_option(name, &mand); \
|
val = get_option(name, &mand); \
|
||||||
if (val != NULL && val->valType == OPARG_TYPE_STRING) { \
|
if (val != NULL && val->valType == OPARG_TYPE_STRING) { \
|
||||||
if (s_name == NULL) { \
|
if (s_name == NULL) { \
|
||||||
@@ -181,9 +181,9 @@ unsigned j;
|
|||||||
} else if (mand != 0) { \
|
} else if (mand != 0) { \
|
||||||
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
||||||
exit(1); \
|
exit(1); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_MULTI_BRACKET_LINE(name, s_name, s_name2, num) \
|
#define READ_MULTI_BRACKET_LINE(name, s_name, s_name2, num) { \
|
||||||
val = get_option(name, &mand); \
|
val = get_option(name, &mand); \
|
||||||
if (val != NULL && val->valType == OPARG_TYPE_STRING) { \
|
if (val != NULL && val->valType == OPARG_TYPE_STRING) { \
|
||||||
if (s_name == NULL || s_name2 == NULL) { \
|
if (s_name == NULL || s_name2 == NULL) { \
|
||||||
@@ -211,25 +211,25 @@ unsigned j;
|
|||||||
} else if (mand != 0) { \
|
} else if (mand != 0) { \
|
||||||
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
||||||
exit(1); \
|
exit(1); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_STRING(name, s_name) \
|
#define READ_STRING(name, s_name) { \
|
||||||
val = get_option(name, &mand); \
|
val = get_option(name, &mand); \
|
||||||
if (val != NULL && val->valType == OPARG_TYPE_STRING) \
|
if (val != NULL && val->valType == OPARG_TYPE_STRING) \
|
||||||
s_name = talloc_strdup(config, val->v.strVal); \
|
s_name = talloc_strdup(config, val->v.strVal); \
|
||||||
else if (mand != 0) { \
|
else if (mand != 0) { \
|
||||||
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
||||||
exit(1); \
|
exit(1); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_STATIC_STRING(name, s_name) \
|
#define READ_STATIC_STRING(name, s_name) { \
|
||||||
val = get_option(name, &mand); \
|
val = get_option(name, &mand); \
|
||||||
if (val != NULL && val->valType == OPARG_TYPE_STRING) \
|
if (val != NULL && val->valType == OPARG_TYPE_STRING) \
|
||||||
snprintf(s_name, sizeof(s_name), "%s", val->v.strVal); \
|
snprintf(s_name, sizeof(s_name), "%s", val->v.strVal); \
|
||||||
else if (mand != 0) { \
|
else if (mand != 0) { \
|
||||||
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
||||||
exit(1); \
|
exit(1); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_TF(name, s_name, def) \
|
#define READ_TF(name, s_name, def) \
|
||||||
{ char* tmp_tf = NULL; \
|
{ char* tmp_tf = NULL; \
|
||||||
@@ -244,7 +244,7 @@ unsigned j;
|
|||||||
talloc_free(tmp_tf); \
|
talloc_free(tmp_tf); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define READ_NUMERIC(name, s_name) \
|
#define READ_NUMERIC(name, s_name) { \
|
||||||
val = get_option(name, &mand); \
|
val = get_option(name, &mand); \
|
||||||
if (val != NULL) { \
|
if (val != NULL) { \
|
||||||
if (val->valType == OPARG_TYPE_NUMERIC) \
|
if (val->valType == OPARG_TYPE_NUMERIC) \
|
||||||
@@ -254,9 +254,9 @@ unsigned j;
|
|||||||
} else if (mand != 0) { \
|
} else if (mand != 0) { \
|
||||||
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
||||||
exit(1); \
|
exit(1); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_PRIO_TOS(name, s_name) \
|
#define READ_PRIO_TOS(name, s_name) { \
|
||||||
val = get_option(name, &mand); \
|
val = get_option(name, &mand); \
|
||||||
if (val != NULL) { \
|
if (val != NULL) { \
|
||||||
if (val->valType == OPARG_TYPE_STRING) { \
|
if (val->valType == OPARG_TYPE_STRING) { \
|
||||||
@@ -271,7 +271,7 @@ unsigned j;
|
|||||||
} else if (mand != 0) { \
|
} else if (mand != 0) { \
|
||||||
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
fprintf(stderr, "Configuration option %s is mandatory.\n", name); \
|
||||||
exit(1); \
|
exit(1); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
|
|
||||||
static int handle_option(const tOptionValue* val)
|
static int handle_option(const tOptionValue* val)
|
||||||
|
|||||||
+10
-10
@@ -61,7 +61,7 @@ static struct cfg_options available_options[] = {
|
|||||||
{ .name = "cgroup", .type = OPTION_STRING, },
|
{ .name = "cgroup", .type = OPTION_STRING, },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define READ_RAW_MULTI_LINE(name, s_name, num) \
|
#define READ_RAW_MULTI_LINE(name, s_name, num) { \
|
||||||
val = optionGetValue(pov, name); \
|
val = optionGetValue(pov, name); \
|
||||||
if (val != NULL && val->valType == OPARG_TYPE_STRING) { \
|
if (val != NULL && val->valType == OPARG_TYPE_STRING) { \
|
||||||
if (s_name == NULL) { \
|
if (s_name == NULL) { \
|
||||||
@@ -77,26 +77,26 @@ static struct cfg_options available_options[] = {
|
|||||||
num++; \
|
num++; \
|
||||||
} while((val = optionNextValue(pov, val)) != NULL); \
|
} while((val = optionNextValue(pov, val)) != NULL); \
|
||||||
s_name[num] = NULL; \
|
s_name[num] = NULL; \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_RAW_STRING(name, s_name) \
|
#define READ_RAW_STRING(name, s_name) { \
|
||||||
val = optionGetValue(pov, name); \
|
val = optionGetValue(pov, name); \
|
||||||
if (val != NULL && val->valType == OPARG_TYPE_STRING) { \
|
if (val != NULL && val->valType == OPARG_TYPE_STRING) { \
|
||||||
if (s_name != NULL) \
|
if (s_name != NULL) \
|
||||||
talloc_free(s_name); \
|
talloc_free(s_name); \
|
||||||
s_name = talloc_strdup(proc, val->v.strVal); \
|
s_name = talloc_strdup(proc, val->v.strVal); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_RAW_NUMERIC(name, s_name) \
|
#define READ_RAW_NUMERIC(name, s_name) { \
|
||||||
val = optionGetValue(pov, name); \
|
val = optionGetValue(pov, name); \
|
||||||
if (val != NULL) { \
|
if (val != NULL) { \
|
||||||
if (val->valType == OPARG_TYPE_NUMERIC) \
|
if (val->valType == OPARG_TYPE_NUMERIC) \
|
||||||
s_name = val->v.longVal; \
|
s_name = val->v.longVal; \
|
||||||
else if (val->valType == OPARG_TYPE_STRING) \
|
else if (val->valType == OPARG_TYPE_STRING) \
|
||||||
s_name = atoi(val->v.strVal); \
|
s_name = atoi(val->v.strVal); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_RAW_PRIO_TOS(name, s_name) \
|
#define READ_RAW_PRIO_TOS(name, s_name) { \
|
||||||
val = optionGetValue(pov, name); \
|
val = optionGetValue(pov, name); \
|
||||||
if (val != NULL) { \
|
if (val != NULL) { \
|
||||||
if (val->valType == OPARG_TYPE_STRING) { \
|
if (val->valType == OPARG_TYPE_STRING) { \
|
||||||
@@ -108,9 +108,9 @@ static struct cfg_options available_options[] = {
|
|||||||
s_name++; \
|
s_name++; \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
}
|
}}
|
||||||
|
|
||||||
#define READ_TF(name, s_name, def) \
|
#define READ_TF(name, s_name, def) { \
|
||||||
{ char* tmp_tf = NULL; \
|
{ char* tmp_tf = NULL; \
|
||||||
READ_RAW_STRING(name, tmp_tf); \
|
READ_RAW_STRING(name, tmp_tf); \
|
||||||
if (tmp_tf == NULL) s_name = def; \
|
if (tmp_tf == NULL) s_name = def; \
|
||||||
@@ -121,7 +121,7 @@ static struct cfg_options available_options[] = {
|
|||||||
s_name = 0; \
|
s_name = 0; \
|
||||||
} \
|
} \
|
||||||
talloc_free(tmp_tf); \
|
talloc_free(tmp_tf); \
|
||||||
}
|
}}
|
||||||
|
|
||||||
static int handle_option(const tOptionValue* val)
|
static int handle_option(const tOptionValue* val)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user