Bug #288 ยป 0001-Fix-bug-288-accept-true-in-output-configuration.patch
| src/conf.c | ||
|---|---|---|
|
ConfGetBool(char *name, int *val)
|
||
|
{
|
||
|
char *strval;
|
||
|
char *trues[] = {"1", "yes", "true", "on"};
|
||
|
size_t u;
|
||
|
*val = 0;
|
||
|
if (ConfGet(name, &strval) != 1)
|
||
|
return 0;
|
||
|
*val = ConfValIsTrue(strval);
|
||
|
return 1;
|
||
|
}
|
||
|
/**
|
||
|
* \brief Check if a value is true.
|
||
|
*
|
||
|
* The value of considered true if it is a string with the value of 1,
|
||
|
* yes, true or on. The test is not case sensitive, any other value
|
||
|
* is false.
|
||
|
*
|
||
|
* \param val The string to test for a true value.
|
||
|
*
|
||
|
* \retval 1 If the value is true, 0 if not.
|
||
|
*/
|
||
|
int
|
||
|
ConfValIsTrue(const char *val)
|
||
|
{
|
||
|
char *trues[] = {"1", "yes", "true", "on"};
|
||
|
size_t u;
|
||
|
for (u = 0; u < sizeof(trues) / sizeof(trues[0]); u++) {
|
||
|
if (strcasecmp(strval, trues[u]) == 0) {
|
||
|
*val = 1;
|
||
|
break;
|
||
|
if (strcasecmp(val, trues[u]) == 0) {
|
||
|
return 1;
|
||
|
}
|
||
|
}
|
||
|
return 1;
|
||
|
return 0;
|
||
|
}
|
||
|
/**
|
||
| ... | ... | |
|
const char *val;
|
||
|
val = ConfNodeLookupChildValue(node, key);
|
||
|
if (val != NULL) {
|
||
|
if ((strcasecmp(val, "yes") == 0) || (strcasecmp(val, "true") == 0))
|
||
|
return 1;
|
||
|
}
|
||
|
return 0;
|
||
|
|
||
|
return val != NULL ? ConfValIsTrue(val) : 0;
|
||
|
}
|
||
|
#ifdef UNITTESTS
|
||
| src/conf.h | ||
|---|---|---|
|
void ConfNodeRemove(ConfNode *);
|
||
|
void ConfRegisterTests();
|
||
|
int ConfNodeChildValueIsTrue(ConfNode *node, const char *key);
|
||
|
int ConfValIsTrue(const char *val);
|
||
|
#endif /* ! __CONF_H__ */
|
||
| src/runmodes.c | ||
|---|---|---|
|
}
|
||
|
enabled = ConfNodeLookupChildValue(output_config, "enabled");
|
||
|
if (enabled != NULL && strcasecmp(enabled, "yes") == 0) {
|
||
|
if (enabled != NULL && ConfValIsTrue(enabled)) {
|
||
|
OutputCtx *output_ctx = NULL;
|
||
|
if (module->InitFunc != NULL) {
|
||
|
output_ctx = module->InitFunc(output_config);
|
||