From 7d69e70dc32f05260f25e8ed556598c360e01b07 Mon Sep 17 00:00:00 2001 From: bagyenda <> Date: Sat, 17 Jan 2009 04:31:21 +0000 Subject: [PATCH] improved mmsc logging on transient errors --- mbuni/ChangeLog | 3 +++ mbuni/mmsc/mmsc.c | 2 +- mbuni/mmsc/mmsc_cfg.c | 47 +++++++++++++++++++----------------- mbuni/mmsc/mmsc_cfg.h | 2 +- mbuni/mmsc/mmsfromemail.c | 2 +- mbuni/mmsc/mmsglobalsender.c | 3 ++- mbuni/mmsc/mmssend.c | 2 +- 7 files changed, 34 insertions(+), 27 deletions(-) diff --git a/mbuni/ChangeLog b/mbuni/ChangeLog index ba3befc..f57c3a9 100644 --- a/mbuni/ChangeLog +++ b/mbuni/ChangeLog @@ -1,3 +1,6 @@ +2009-01-17 P. A. Bagyenda + * Improved mmsc logging + * mmsc tools other than mmsc no longer attempt to open admin port 2009-01-16 P. A. Bagyenda * Minor update to mmsc mm1 notifier: cleanup 2009-01-12 P. A. Bagyenda diff --git a/mbuni/mmsc/mmsc.c b/mbuni/mmsc/mmsc.c index 2b37244..b71920a 100644 --- a/mbuni/mmsc/mmsc.c +++ b/mbuni/mmsc/mmsc.c @@ -54,7 +54,7 @@ int main(int argc, char *argv[]) mms_info(0, "mmsc", NULL," " MM_NAME " MMSC version %s starting", MMSC_VERSION); - settings = mms_load_mmsc_settings(fname,&proxyrelays); + settings = mms_load_mmsc_settings(fname,&proxyrelays, 0); octstr_destroy(fname); if (!settings) diff --git a/mbuni/mmsc/mmsc_cfg.c b/mbuni/mmsc/mmsc_cfg.c index b5e5457..3ad4226 100644 --- a/mbuni/mmsc/mmsc_cfg.c +++ b/mbuni/mmsc/mmsc_cfg.c @@ -50,7 +50,7 @@ void mms_cleanup_mmsc_settings(MmscSettings *settings) mms_event_logger_cleanup(); } -MmscSettings *mms_load_mmsc_settings(Octstr *fname, List **proxyrelays) +MmscSettings *mms_load_mmsc_settings(Octstr *fname, List **proxyrelays, int skip_admin) { mCfg *cfg; Octstr *s; @@ -348,30 +348,33 @@ MmscSettings *mms_load_mmsc_settings(Octstr *fname, List **proxyrelays) /* Now load & start admin interface. */ - mms_cfg_get_int(cfg, grp, octstr_imm("mmsc-admin-port"), &m->admin_port); + if (skip_admin) + m->admin_port = -1; + else { + mms_cfg_get_int(cfg, grp, octstr_imm("mmsc-admin-port"), &m->admin_port); #ifdef HAVE_LIBSSL - mms_cfg_get_bool(cfg, grp, octstr_imm("admin-port-ssl"), &ssl); + mms_cfg_get_bool(cfg, grp, octstr_imm("admin-port-ssl"), &ssl); #endif - m->admin_pass = mms_cfg_get(cfg, grp, octstr_imm("admin-password")); - - m->admin_allow_ip = mms_cfg_get(cfg, grp, octstr_imm("admin-allow-ip")); - m->admin_deny_ip = mms_cfg_get(cfg, grp, octstr_imm("admin-deny-ip")); - - if (m->admin_port > 0 && - http_open_port(m->admin_port, ssl)< 0) { - mms_error(0, "mmsc", NULL, "Failed to start admin server on port %d: %s", - (int)m->admin_port, strerror(errno)); - m->admin_port = -1; - } else if (m->admin_port > 0 && - (m->admin_thread = gwthread_create((gwthread_func_t *)admin_handler, m)) < 0) { - mms_error(0, "mmsc", NULL, "Failed to start admin server thread: %s", - strerror(errno)); - http_close_port(m->admin_port); - m->admin_port = -1; - } else if (m->admin_pass == NULL) - mms_warning(0, "mmsc", NULL, "Empty or no password supplied for admin port. All requests will be allowed!"); - + m->admin_pass = mms_cfg_get(cfg, grp, octstr_imm("admin-password")); + + m->admin_allow_ip = mms_cfg_get(cfg, grp, octstr_imm("admin-allow-ip")); + m->admin_deny_ip = mms_cfg_get(cfg, grp, octstr_imm("admin-deny-ip")); + if (m->admin_port > 0 && + http_open_port(m->admin_port, ssl)< 0) { + mms_error(0, "mmsc", NULL, "Failed to start admin server on port %d: %s", + (int)m->admin_port, strerror(errno)); + m->admin_port = -1; + } else if (m->admin_port > 0 && + (m->admin_thread = gwthread_create((gwthread_func_t *)admin_handler, m)) < 0) { + mms_error(0, "mmsc", NULL, "Failed to start admin server thread: %s", + strerror(errno)); + http_close_port(m->admin_port); + m->admin_port = -1; + } else if (m->admin_pass == NULL) + mms_warning(0, "mmsc", NULL, "Empty or no password supplied for admin port. All requests will be allowed!"); + + } mms_cfg_destroy_grp(cfg, cgrp); mms_cfg_destroy_grp(cfg, grp); diff --git a/mbuni/mmsc/mmsc_cfg.h b/mbuni/mmsc/mmsc_cfg.h index e9b6c25..86ac991 100644 --- a/mbuni/mmsc/mmsc_cfg.h +++ b/mbuni/mmsc/mmsc_cfg.h @@ -133,7 +133,7 @@ typedef struct MmscSettings { } MmscSettings; /* Returns mmsc settings. */ -MmscSettings *mms_load_mmsc_settings(Octstr *fname, List **proxyrelays); +MmscSettings *mms_load_mmsc_settings(Octstr *fname, List **proxyrelays, int skip_admin_port); MmsVasp *mmsc_load_vasp_from_conf(MmscSettings *m, mCfgGrp *grp, List *errors, List *warnings); int mmsc_unload_vasp(MmscSettings *m, Octstr *id); diff --git a/mbuni/mmsc/mmsfromemail.c b/mbuni/mmsc/mmsfromemail.c index 53cff70..9d9efc9 100644 --- a/mbuni/mmsc/mmsfromemail.c +++ b/mbuni/mmsc/mmsfromemail.c @@ -80,7 +80,7 @@ int main(int argc, char *argv[]) mms_info(0, "mmsfromemail", NULL, " MMSC Email2MMS/MM4 Incoming Tool version %s starting", MMSC_VERSION); /* Load settings. */ - settings = mms_load_mmsc_settings(fname, &proxyrelays); + settings = mms_load_mmsc_settings(fname, &proxyrelays,1); if (!settings) panic(0, "No global MMSC configuration, or failed to read conf from <%s>!", octstr_get_cstr(fname)); diff --git a/mbuni/mmsc/mmsglobalsender.c b/mbuni/mmsc/mmsglobalsender.c index 2a5b475..062bdaa 100644 --- a/mbuni/mmsc/mmsglobalsender.c +++ b/mbuni/mmsc/mmsglobalsender.c @@ -404,7 +404,8 @@ static int sendMsg(MmsEnvelope *e) } /* Write to log */ - if (res == MMS_SEND_ERROR_FATAL) + if (res == MMS_SEND_ERROR_FATAL || + (res == MMS_SEND_ERROR_TRANSIENT && err != NULL)) mms_error(0, "MM2", NULL, "%s Global Queue MMS Send [%.128s]: From %s, to %s, msgsize=%ld: %s. ", SEND_ERROR_STR(res), e->xqfname, diff --git a/mbuni/mmsc/mmssend.c b/mbuni/mmsc/mmssend.c index 28b7dc4..c87a9f3 100644 --- a/mbuni/mmsc/mmssend.c +++ b/mbuni/mmsc/mmssend.c @@ -88,7 +88,7 @@ int main(int argc, char *argv[]) /* Load settings. */ - settings = mms_load_mmsc_settings(fname, &proxyrelays); + settings = mms_load_mmsc_settings(fname, &proxyrelays,1); if (!settings) panic(0, "No global MMSC configuration, or failed to read conf from <%s>!", octstr_get_cstr(fname));