*/
config_param_register("verify_filter");
+
+/* Where to bind the server.
+ */
+config_param_register("port");
+
static inline config_t *config_new(void)
{
config_t *config = p_new(config_t, 1);
}
ok = false;
+#define PARSE_CHECK(Expr, Fmt, ...) \
+ if (!(Expr)) { \
+ syslog(LOG_ERR, Fmt, ##__VA_ARGS__); \
+ return false; \
+ }
foreach (filter_param_t *param, config->params) {
switch (param->type) {
#define CASE(Param, State) \
ok = true; \
config->entry_points[SMTP_ ## State] \
= filter_find_with_name(&config->filters, param->value); \
+ PARSE_CHECK(config->entry_points[SMTP_ ## State] >= 0, \
+ "invalid filter name %s", param->value); \
break;
CASE(CLIENT, CONNECT)
CASE(EHLO, EHLO)
CASE(VERIFY, VRFY)
CASE(ETRN, ETRN)
#undef CASE
+ FILTER_PARAM_PARSE_INT(PORT, config->port);
default: break;
}
}}