diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 32 |
1 files changed, 16 insertions, 16 deletions
@@ -250,66 +250,66 @@ host_in_relayed_domain_p(char *client) if (mu_list_is_empty(domain_list)) return 0; if (resolve_ipstr(client, &hbuf)) return 0; rc = relayed_domain_p(hbuf); free(hbuf); return rc; } static void -set_milter_timeout(void *value) +set_milter_timeout(union mf_option_value *val) { - time_t to = *(time_t*) value; - free(value); - if (smfi_settimeout(to) == MI_FAILURE) { - mu_error(_("invalid milter timeout: %lu"), (unsigned long) to); + if (smfi_settimeout(val->ov_time) == MI_FAILURE) { + mu_error(_("invalid milter timeout: %lu"), + (unsigned long)val->ov_time); exit(EX_USAGE); } } static int load_relay_file(void *item, void *data) { read_domain_file(item); return 0; } static void -set_relay(void *value) +set_relay(union mf_option_value *val) { - mu_list_foreach(value, load_relay_file, NULL); + mu_list_foreach(val->ov_list, load_relay_file, NULL); + mu_list_destroy(&val->ov_list); } void -set_stack_trace(void *value) +set_stack_trace(union mf_option_value *val) { - stack_trace_option = (int) value; + stack_trace_option = val->ov_bool; } static int -option_relay(char *opt, void **pval, char *newval) +option_relay(char const *opt, union mf_option_value *val, char const *newval) { - if (!*pval) - mu_list_create((mu_list_t*)pval); - mu_list_append(*pval, strdup(newval)); + if (!val->ov_list) + mu_list_create(&val->ov_list); + mu_list_append(val->ov_list, strdup(newval)); return 0; } struct mf_option_cache option_cache[] = { - { "stack-trace", NULL, mf_option_boolean, set_stack_trace }, - { "milter-timeout", NULL, mf_option_time, set_milter_timeout }, - { "relay", NULL, option_relay, set_relay }, + { "stack-trace", mf_option_boolean, set_stack_trace }, + { "milter-timeout", mf_option_timeout, set_milter_timeout }, + { "relay", option_relay, set_relay }, { NULL } }; /* Command line parsing */ const char *program_version = "mailfromd (" PACKAGE_STRING ")"; static char doc[] = N_("mailfromd -- a general purpose milter daemon"); static char args_doc[] = "[var=value...][SCRIPT]"; enum mailfromd_option { OPTION_DAEMON = 256, |