aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-03-17 23:01:29 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2011-03-18 10:30:16 +0200
commitca22428399f3b4eeef51b289e91d31a3cdec0b72 (patch)
tree90ceb21f9bc4e78421baf9f59e880fbecb7ee170 /src
parent9ccabb0f25ef0d7503bd01cdf0bbd83f7302703e (diff)
downloadmailfromd-ca22428399f3b4eeef51b289e91d31a3cdec0b72.tar.gz
mailfromd-ca22428399f3b4eeef51b289e91d31a3cdec0b72.tar.bz2
Rethink the solution to mtasim interaction problem (see c0535e8e).
* src/main.c (parse_opt) <OPTION_MTASIM>: Rollback c0535e8e. (mtasim_option): Move to srvcfg.c. * src/srvcfg.c (server_section_parser) <mu_cfg_section_end>: If mtasim_option is set, ignore the server statements.
Diffstat (limited to 'src')
-rw-r--r--src/main.c3
-rw-r--r--src/srvcfg.c75
2 files changed, 41 insertions, 37 deletions
diff --git a/src/main.c b/src/main.c
index 953d6a78..50050a72 100644
--- a/src/main.c
+++ b/src/main.c
@@ -71,7 +71,6 @@ char *ext_pp_options;
int ext_pp_options_given;
int do_trace; /* Enable tracing configuration */
-int mtasim_option; /* mtasim compatibility mode */
unsigned optimization_level = 1; /* Optimization level */
int stack_trace_option; /* Print stack traces on runtime errors */
@@ -625,8 +624,6 @@ parse_opt(int key, char *arg, struct argp_state *state)
case OPTION_MTASIM:
mtasim_option = 1;
server_flags |= MF_SERVER_FOREGROUND;
- mu_load_site_rcfile = 0;
- mu_load_user_rcfile = 0;
break;
case OPTION_SHOW_DEFAULTS:
diff --git a/src/srvcfg.c b/src/srvcfg.c
index 43689c6c..7a4937f6 100644
--- a/src/srvcfg.c
+++ b/src/srvcfg.c
@@ -41,6 +41,7 @@ int smtp_transcript;
static int transcript_option;
unsigned long source_address = INADDR_ANY; /* Source address for TCP
connections */
+int mtasim_option; /* mtasim compatibility mode */
size_t max_callout_mx = MAXMXCOUNT;
@@ -420,40 +421,46 @@ server_section_parser(enum mu_cfg_section_stage stage,
break;
case mu_cfg_section_end:
- if (server_config_stmt.options)
- mu_list_set_comparator(server_config_stmt.options,
- mf_list_compare_string);
- if (mf_server_function(node->label ?
- node->label->v.string : NULL,
- &server_config_stmt)) {
- mu_error(_("unknown server type"));
- return 1;
- } else if (!server_config_stmt.server) {
- mu_error(_("INTERNAL ERROR at %s:%d: "
- "server function not defined"),
- __FILE__, __LINE__);
- return 1;
- }
- if (!server_config_stmt.id)
- server_config_stmt.id = next_server_id();
- if (server_config_stmt.url && server_config_stmt.server) {
- int flags = 0;
- mfd_server_t srv;
-
- if (server_config_stmt.single_process)
- flags |= SRV_SINGLE_PROCESS;
- if (!server_config_stmt.reuseaddr)
- flags |= SRV_KEEP_EXISTING;
- srv = mfd_server_new(server_config_stmt.id,
- server_config_stmt.url,
- server_config_stmt.server,
- flags);
- if (srv) {
- mfd_server_set_max_children(srv,
- server_config_stmt.max_children);
- mfd_server_set_acl(srv,
- server_config_stmt.acl);
- mfd_srvman_attach_server(srv);
+ if (mtasim_option)
+ mu_url_destroy(&server_config_stmt.url);
+ else {
+ if (server_config_stmt.options)
+ mu_list_set_comparator(
+ server_config_stmt.options,
+ mf_list_compare_string);
+ if (mf_server_function(node->label ?
+ node->label->v.string : NULL,
+ &server_config_stmt)) {
+ mu_error(_("unknown server type"));
+ return 1;
+ } else if (!server_config_stmt.server) {
+ mu_error(_("INTERNAL ERROR at %s:%d: "
+ "server function not defined"),
+ __FILE__, __LINE__);
+ return 1;
+ }
+ if (!server_config_stmt.id)
+ server_config_stmt.id = next_server_id();
+ if (server_config_stmt.url
+ && server_config_stmt.server) {
+ int flags = 0;
+ mfd_server_t srv;
+
+ if (server_config_stmt.single_process)
+ flags |= SRV_SINGLE_PROCESS;
+ if (!server_config_stmt.reuseaddr)
+ flags |= SRV_KEEP_EXISTING;
+ srv = mfd_server_new(server_config_stmt.id,
+ server_config_stmt.url,
+ server_config_stmt.server,
+ flags);
+ if (srv) {
+ mfd_server_set_max_children(srv,
+ server_config_stmt.max_children);
+ mfd_server_set_acl(srv,
+ server_config_stmt.acl);
+ mfd_srvman_attach_server(srv);
+ }
}
}
mu_list_destroy(&server_config_stmt.options);

Return to:

Send suggestions and report system problems to the System administrator.