summaryrefslogtreecommitdiffabout
path: root/src/main.c
authorSergey Poznyakoff <gray@gnu.org.ua>2010-08-22 19:21:28 (GMT)
committer Sergey Poznyakoff <gray@gnu.org.ua>2010-08-22 20:11:41 (GMT)
commitdc8d3d50cbaca39447576ac0ac573ca8a84a2c05 (patch) (unidiff)
treed9a4f88f0fb0019a740d334d67a7215d66c0c8aa /src/main.c
parent84db5d2111b2f8ac9fd583ed13c106b620b8fefa (diff)
downloadmailfromd-dc8d3d50cbaca39447576ac0ac573ca8a84a2c05.tar.gz
mailfromd-dc8d3d50cbaca39447576ac0ac573ca8a84a2c05.tar.bz2
Fix starting of the default callout server. Reflect the actual server URL in callout_server_url.
* mflib/callout.mf4 (callout_server_url): New variable. (begin): Provide a default for callout_server_url. (__callout_open_default): Return the fd. (callout): Use return from __callout_open_default as the first argument to callout_do. * mflib/poll.mf (__make_extra_arg): New static function. (_pollhost, _pollmx, stdpoll, strictpoll): Use return from __callout_open_default as the first argument to callout_do. Construct the rest of arguments using __make_extra_arg. * src/builtin/callout.bi (callout_server_url): Remove. (default_callout_server_url): New function. (MF_INIT): Remove initialization of callout_server_url. * src/mailfromd.h (default_callout_url): Rename to callout_server_url. * src/main.c (default_callout_url): Rename to callout_server_url. (provide_default_callout_server): Rewrite the condition. Don't try to reset the callout_server_url MFL variable: it is useless after compilation is finished. (mf_server_function): Fix the use of mu_list_locate. (main): Fix a typo in the server section label. * src/srvcfg.c (server_section_parser): Move the call to mf_server_function to the mu_cfg_section_end branch.
Diffstat (limited to 'src/main.c') (more/less context) (ignore whitespace changes)
-rw-r--r--src/main.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/main.c b/src/main.c
index ccd31e6..1620fa2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -78,7 +78,7 @@ int stack_trace_option; /* Print stack traces on runtime errors */
78size_t max_match_mx = MAXMXCOUNT; 78size_t max_match_mx = MAXMXCOUNT;
79 79
80char *main_function_name = "main"; 80char *main_function_name = "main";
81char *default_callout_url = DEFAULT_CALLOUT_SOCKET; 81char *callout_server_url;
82 82
83 83
84/* Preprocessor helper function */ 84/* Preprocessor helper function */
@@ -894,9 +894,8 @@ struct mu_cfg_param mf_cfg_param[] = {
894 { "milter-timeout", mu_cfg_callback, NULL, 0, cb_milter_timeout, 894 { "milter-timeout", mu_cfg_callback, NULL, 0, cb_milter_timeout,
895 N_("Set milter timeout."), 895 N_("Set milter timeout."),
896 N_("time") }, 896 N_("time") },
897 { "callout-url", mu_cfg_string, &default_callout_url, 0, NULL, 897 { "callout-url", mu_cfg_string, &callout_server_url, 0, NULL,
898 N_("Sets the URL of the default callout server. " 898 N_("Sets the URL of the default callout server."),
899 "Deprecated. Use `setvar callout_server_url <url>;' instead."),
900 N_("url") }, 899 N_("url") },
901 { "include-path", mu_cfg_callback, NULL, 0, cb_include_path, 900 { "include-path", mu_cfg_callback, NULL, 0, cb_include_path,
902 N_("Add directories to the list of directories to be searched for " 901 N_("Add directories to the list of directories to be searched for "
@@ -1104,16 +1103,11 @@ provide_default_callout_server()
1104 struct variable *var; 1103 struct variable *var;
1105 1104
1106 if (provide_callout && 1105 if (provide_callout &&
1106 !callout_server_url &&
1107 (!(var = variable_lookup("callout_server_url")) || 1107 (!(var = variable_lookup("callout_server_url")) ||
1108 (var->sym.flags & SYM_REFERENCED) && 1108 (var->sym.flags & SYM_REFERENCED) &&
1109 !(var->sym.flags & SYM_INITIALIZED))) { 1109 !(var->sym.flags & SYM_INITIALIZED))) {
1110 struct value val; 1110 mf_srvcfg_add("callout", DEFAULT_CALLOUT_SOCKET);
1111
1112 val.type = dtype_string;
1113 val.v.literal = string_alloc(DEFAULT_CALLOUT_SOCKET,
1114 sizeof(DEFAULT_CALLOUT_SOCKET)-1);
1115 ensure_initialized_variable("callout_server_url", &val);
1116 mf_srvcfg_add("callout", val.v.literal->text);
1117 } 1111 }
1118} 1112}
1119 1113
@@ -1134,8 +1128,8 @@ mf_server_function(const char *key, struct mf_srvcfg *cfg)
1134 else if (strcmp(key, "callout") == 0) { 1128 else if (strcmp(key, "callout") == 0) {
1135 cfg->server = callout_session_server; 1129 cfg->server = callout_session_server;
1136 if (cfg->defopt || 1130 if (cfg->defopt ||
1137 mu_list_locate(cfg->options, "default", NULL)) 1131 mu_list_locate(cfg->options, "default", NULL) == 0)
1138 default_callout_url = 1132 callout_server_url =
1139 xstrdup(mu_url_to_string(cfg->url)); 1133 xstrdup(mu_url_to_string(cfg->url));
1140 } else 1134 } else
1141 return 1; 1135 return 1;
@@ -1184,7 +1178,7 @@ main(int argc, char **argv)
1184 mu_acl_cfg_init(); 1178 mu_acl_cfg_init();
1185 database_cfg_init(); 1179 database_cfg_init();
1186 srvman_init(); 1180 srvman_init();
1187 mf_srvcfg_init(N_("(milter | server)")); 1181 mf_srvcfg_init(N_("(milter | callout)"));
1188 1182
1189 mu_argp_init(program_version, "<" PACKAGE_BUGREPORT ">"); 1183 mu_argp_init(program_version, "<" PACKAGE_BUGREPORT ">");
1190 mu_app_rcfile = DEFAULT_CONFIG_FILE; 1184 mu_app_rcfile = DEFAULT_CONFIG_FILE;

Return to:

Send suggestions and report system problems to the System administrator.