*/
#include "file.h"
-#include "filter.h"
#include "config.h"
#include "str.h"
-struct config_t {
- A(filter_t) filters;
- A(filter_params_t) params;
- int entry_point;
-};
+#define config_param_register(Param)
+
+config_param_register("first_filter");
static inline config_t *config_new(void)
{
}
}}
+ config->entry_point = -1;
+ foreach (filter_param_t *param, config->params) {
+ switch (param->type) {
+ case ATK_FIRST_FILTER:
+ config->entry_point = filter_find_with_name(&config->filters,
+ param->value);
+ break;
+ default: break;
+ }
+ }}
+ array_deep_wipe(config->params, filter_params_wipe);
+
+ if (config->entry_point == -1) {
+ ok = false;
+ syslog(LOG_ERR, "no entry point defined");
+ }
+
return ok;
}
READ_BLANK(goto badeof);
READ_STRING("parameter value", value, value_len, ;);
{
- filter_params_t param;
- param.name = m_strdup(key);
- param.value = m_strdup(value);
- array_add(config->params, param);
+ filter_param_t param;
+ param.type = param_tokenize(key, key_len);
+ if (param.type != ATK_UNKNOWN) {
+ param.value = m_strdup(value);
+ array_add(config->params, param);
+ }
}
goto read_section;
key + 3, filter.name);
}
} else {
- if (!filter_add_param(&filter, key, key_len, value, value_len)) {
- goto error;
- }
+ /* filter_add_param failure mean unknown type or unsupported type.
+ * this are non-fatal errors.
+ */
+ (void)filter_add_param(&filter, key, key_len, value, value_len);
}
}
READ_NEXT(;);