aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/main.c b/src/main.c
index 5fbc3682..65329a42 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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,

Return to:

Send suggestions and report system problems to the System administrator.