diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-12-06 01:18:38 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2010-12-06 01:40:09 +0200 |
commit | 65ee39bff915f6466f57c1f81361bf57a64b0163 (patch) | |
tree | b40172c56e33174392cbf53de52a309818bc47c8 /libmailutils/server/msrv.c | |
parent | 7acfd2d86d9629f8510e4badd16d1098fe6df4b4 (diff) | |
download | mailutils-65ee39bff915f6466f57c1f81361bf57a64b0163.tar.gz mailutils-65ee39bff915f6466f57c1f81361bf57a64b0163.tar.bz2 |
Rewrite debugging and logging support.
The mu_debug_t object and associated functions have been removed.
New debugging functions are based on the logstream interface.
* include/mailutils/debug.hm4: Remove.
* include/mailutils/debug.h: New file.
* include/mailutils/Makefile.am (BUILT_SOURCES,EXTRA_DIST): Remove debug.h,
debug.hm4.
* mu-aux/debugdef.m4: Remove.
* mu-aux/debcat.awk: New file.
* mu-aux/Makefile.am (EXTRA_DIST): Replace debugdef.m4 with debcat.awk.
* include/mailutils/sys/dbgstream.h: Remove.
* include/mailutils/sys/debug.h: Remove.
* include/mailutils/sys/Makefile.am (sysinclude_HEADERS): Remove debug.h
and dbgstream.h, add debcat.h
* include/mailutils/sys/.gitignore: Add debcat.h.
* libmailutils/diag/dbgstderr.c: Remove.
* libmailutils/diag/dbgsyslog.c: Remove.
* libmailutils/diag/gdebug.c: Remove.
* libmailutils/diag/debcat: New file.
* libmailutils/diag/Makefile.am (libdiag_la_SOURCES): Remove these
sources.
* libmailutils/diag/debug.c: Rewrite from scratch.
* libmailutils/diag/diag.c: Rewrite from scratch.
* libmailutils/diag/syslog.c (mu_diag_syslog_printer): Remove function.
(mu_log_syslog, mu_log_print_severity): New variables.
* libmailutils/stream/dbgstream.c: Remove.
* libmailutils/stream/Makefile.am (libstream_la_SOURCES): Remove dbgstream.c..
* libmailutils/stdstream/Makefile.am (libstdstream_la_SOURCES): Add
dbgstream.c.
* libmailutils/stream/logstream.c (_mu_severity_str): Change strings
to lower case.
(_log_write): Improve handling of unrecognized escapes.
(_log_ctl): Handle MU_LOGSTREAM_ADVANCE_LOCUS_LINE and
MU_LOGSTREAM_ADVANCE_LOCUS_COL.
* libmailutils/mailbox/folder.c (mu_folder_has_debug)
(mu_folder_get_debug, mu_folder_set_debug): Remove functions.
* mu-aux/debcat.awk: New file.
* libmailutils/stdstream/dbgstream.c: New file.
* comsat/action.c: Use new debug/log functions.
* comsat/comsat.c: Likewise.
* examples/aclck.c: Likewise.
* examples/echosrv.c: Likewise.
* examples/msg-send.c: Likewise.
* examples/nntpclient.c: Likewise.
* examples/numaddr.c: Likewise.
* frm/common.c: Likewise.
* imap4d/imap4d.c: Likewise.
* imap4d/io.c: Likewise.
* imap4d/util.c: Likewise.
* libmailutils/auth/mu_auth.c: Likewise.
* libmailutils/base/amd.c: Likewise.
* libmailutils/cfg/driver.c: Likewise.
* libmailutils/cfg/format.c: Likewise.
* libmailutils/cfg/lexer.l: Likewise.
* libmailutils/cfg/parser.y: Likewise.
* libmailutils/mailbox/mailbox.c: Likewise.
* libmailutils/mailbox/mbx_default.c: Likewise.
* libmailutils/mailer/mailer.c: Likewise.
* libmailutils/mailer/progmailer.c: Likewise.
* libmailutils/server/acl.c: Likewise.
* libmailutils/server/ipsrv.c: Likewise.
* libmailutils/server/msrv.c: Likewise.
* libmailutils/tests/wicket.c: Likewise.
* libmu_argp/auth.c: Likewise.
* libmu_argp/cmdline.c: Likewise.
* libmu_argp/common.c: Likewise.
* libmu_auth/ldap.c: Likewise.
* libmu_cfg/acl.c: Likewise.
* libmu_cfg/auth.c: Likewise.
* libmu_cfg/common.c: Likewise.
* libmu_cfg/ldap.c: Likewise.
* libmu_cfg/sieve.c: Likewise.
* libmu_cfg/sql.c: Likewise.
* libmu_scm/mu_message.c: Likewise.
* libmu_sieve/prog.c: Likewise.
* libmu_sieve/runtime.c: Likewise.
* libproto/imap/trace.c: Likewise.
* libproto/mailer/mbox.c: Likewise.
* libproto/mailer/prog.c: Likewise.
* libproto/mailer/sendmail.c: Likewise.
* libproto/mailer/smtp.c: Likewise.
* libproto/mailer/smtp_trace.c: Likewise.
* libproto/mbox/folder.c: Likewise.
* libproto/mbox/mbox.c: Likewise.
* libproto/nntp/folder.c: Likewise.
* libproto/nntp/nntp_debug.c: Likewise.
* libproto/pop/mbox.c: Likewise.
* libproto/pop/pop3_trace.c: Likewise.
* maidag/guile.c: Likewise.
* maidag/lmtp.c: Likewise.
* maidag/maidag.c: Likewise.
* maidag/util.c: Likewise.
* mail/mail.c: Likewise.
* mail/mailvar.c: Likewise.
* mail/send.c: Likewise.
* mail/source.c: Likewise.
* mh/mh_argp.c: Likewise.
* mh/send.c: Likewise.
* mimeview/mimeview.c: Likewise.
* movemail/movemail.c: Likewise.
* mu/wicket.c: Likewise.
* pop3d/extra.c: Likewise.
* pop3d/pop3d.c: Likewise.
* readmsg/readmsg.c: Likewise.
* sieve/sieve.c: Likewise.
* testsuite/mimetest.c: Likewise.
* libmu_sieve/sieve-priv.h (mu_sieve_machine) <parse_error_printer>
<error_printer, debug_printer, debug>: Remove.
<errstream>: New member.
(mu_sv_compile_error, mu_sv_print_value_list)
(mu_sv_print_tag_list): Change prototypes.
* libmu_sieve/actions.c: Use new sieve debug functions.
* libmu_sieve/extensions/list.c: Likewise.
* libmu_sieve/extensions/moderator.c: Likewise.
* libmu_sieve/extensions/pipe.c: Likewise.
* libmu_sieve/extensions/spamd.c: Likewise.
* libmu_sieve/extensions/timestamp.c: Likewise.
* libmu_sieve/extensions/vacation.c: Likewise.
* libmu_sieve/sieve.y : Likewise.
* libmu_sieve/sieve.l: Likewise.
* libmu_sieve/tests.c: Likewise.
* libmu_sieve/util.c: Rewrite diagnostic support.
* /maidag/sieve.c: Use new debug/log and sieve diagnostic functions.
* mu/mu.c (main): Remove call to mu_stdstream_setup. It is called
by mu_app_init now.
* libmailutils/base/wicket.c (mu_wicket_stream_match_url): Change signature.
* libmailutils/cfg/gocs.c (mu_gocs_logging_init): Rewrite.
* libmailutils/mailbox/message.c (mu_message_save_to_mailbox): Remove
mu_debug_t argument.
* libmailutils/stdstream/basestr.c (mu_stdstream_setup): Minor fixes.
* libmailutils/stdstream/strerr.c (mu_stdstream_strerr_create): Do
not install filter stream if tag is NULL.
(mu_stdstream_strerr_setup): New function.
* libmu_argp/muinit.c (mu_app_init): Set mu_log_tag.
Call mu_stdstream_setup.
* libmu_scm/mu_dbgport.c: Rewrite port support.
* include/mailutils/acl.h (mu_acl_get_debug)
(mu_acl_set_debug): Remove prototypes.
* include/mailutils/auth.h (mu_wicket_stream_match_url): Change signature.
* include/mailutils/cfg.h (mu_cfg_locus_t): Remove typedef, use
struct mu_locus instead.
(mu_cfg_locus): Remove declaration.
(mu_cfg_node)<locus>: Change type.
(mu_cfg_node)<debug>: Remove.
(mu_cfg_vperror,mu_cfg_perror)
(mu_cfg_parse_error,mu_cfg_format_error): Remove prototypes.
(mu_cfg_callback_t): Change signature. All uses updated.
(mu_cfg_get_debug): Remove prototype.
(mu_cfg_assert_value_type, mu_cfg_string_value_cb): Change signature.
(mu_cfg_tree_set_debug): Remove prototype.
(mu_cfg_tree_create_node): Change signature.
* include/mailutils/diag.h (MU_DIAG_): Redefine via MU_LOG_ constants.
(mu_diag_get_debug,mu_diag_set_debug): Remove.
(mu_diag_cont_vprintf, mu_diag_cont_printf)
(mu_diag_at_locus): New functions.
* include/mailutils/folder.h (mu_folder_has_debug)
(mu_folder_get_debug, mu_folder_set_debug): Remove prototypes.
* include/mailutils/gocs.h (mu_gocs_logging): Remove structure.
(mu_gocs_debug)<errpfx>: Remove.
* include/mailutils/guile.h (mu_scm_make_debug_port): Change prototype.
* include/mailutils/mailbox.h (mu_mailbox_has_debug)
(mu_mailbox_get_debug,mu_mailbox_set_debug): Remove.
* include/mailutils/mailer.h (mu_mailer_get_debug)
(mu_mailer_set_debug): Remove.
* include/mailutils/message.h (mu_message_save_to_mailbox): Change
signature.
* include/mailutils/mu_auth.h (mu_auth_set_debug): Remove proto.
* include/mailutils/nntp.h (mu_nntp_set_debug): Remove.
* include/mailutils/progmailer.h (mu_progmailer_set_debug): Remove proto.
* include/mailutils/server.h (mu_ip_server_set_debug)
(mu_ip_server_get_debug): Remove proto.
* include/mailutils/sieve.h (mu_sieve_locus_t): Remove.
Use struct mu_locus instead.
(mu_sieve_printf_t, mu_sieve_parse_error_t): Remove.
(mu_sieve_action_log_t): Change signature.
(mu_sieve_machine_init): Change signature.
(mu_sieve_machine_init_ex): New function.
(mu_sieve_get_diag_stream)
(mu_sieve_set_diag_stream): New functions.
(mu_sieve_set_data): New function.
(mu_sieve_get_locus): Change signature.
(mu_sieve_set_error,mu_sieve_set_parse_error)
(mu_sieve_set_debug,mu_sieve_set_debug_object): Remove protos.
* include/mailutils/stdstream.h (mu_stdstream_strerr_setup): New proto.
* include/mailutils/stream.h (MU_LOGSTREAM_ADVANCE_LOCUS_LINE)
(MU_LOGSTREAM_ADVANCE_LOCUS_COL): New ioctls.
(mu_dbgstream_create): Change signature.
* include/mailutils/sys/folder.h (_mu_folder) <debug>: Remove.
* include/mailutils/sys/mailbox.h (_mu_mailbox) <debug>: Remove.
* include/mailutils/sys/mailer.h (_mu_mailer) <debug>: Remove.
* include/mailutils/sys/nntp.h (_mu_nntp) <debug>: Remove.
* include/mailutils/syslog.h (mu_log_syslog)
(mu_log_print_severity): New externs.
* include/mailutils/types.hin (_mu_debug, mu_debug_t): Remove.
* lib/tcpwrap.h: Remove unused prototypes.
* imap4d/imap4d.h: Include mailutils/stdstream.h
* mail/mail.h: Likewise.
* pop3d/pop3d.h: Likewise.
* mh/comp.c (main): Bugfix.
* po/POTFILES.in: Update.
* TODO: Update.
Diffstat (limited to 'libmailutils/server/msrv.c')
-rw-r--r-- | libmailutils/server/msrv.c | 47 |
1 files changed, 20 insertions, 27 deletions
diff --git a/libmailutils/server/msrv.c b/libmailutils/server/msrv.c index 209da4498..b9716ec6c 100644 --- a/libmailutils/server/msrv.c +++ b/libmailutils/server/msrv.c @@ -758,7 +758,7 @@ m_srv_conn (int fd, struct sockaddr *sa, int salen, unsigned short -get_port (mu_debug_t debug, const char *p) +get_port (const char *p) { if (p) { @@ -768,8 +768,7 @@ get_port (mu_debug_t debug, const char *p) { if (n > USHRT_MAX) { - mu_debug_printf (debug, MU_DIAG_ERROR, - _("invalid port number: %s\n"), p); + mu_error (_("invalid port number: %s"), p); return 1; } @@ -847,7 +846,7 @@ is_ip_addr (const char *arg) } int -_mu_m_server_parse_url (mu_debug_t debug, const char *arg, union m_sockaddr *s, +_mu_m_server_parse_url (const char *arg, union m_sockaddr *s, int *psalen, struct sockaddr *defsa) { char *p; @@ -858,7 +857,7 @@ _mu_m_server_parse_url (mu_debug_t debug, const char *arg, union m_sockaddr *s, s->s_sa.sa_family = AF_INET; else if (get_family (&arg, &s->s_sa.sa_family)) { - mu_debug_printf (debug, MU_DIAG_ERROR, _("invalid family\n")); + mu_error (_("invalid family")); return EINVAL; } @@ -866,7 +865,7 @@ _mu_m_server_parse_url (mu_debug_t debug, const char *arg, union m_sockaddr *s, { case AF_INET: *psalen = sizeof (s->s_in); - if ((n = get_port (debug, arg))) + if ((n = get_port (arg))) { s->s_in.sin_addr.s_addr = htonl (INADDR_ANY); s->s_in.sin_port = htons (n); @@ -883,18 +882,16 @@ _mu_m_server_parse_url (mu_debug_t debug, const char *arg, union m_sockaddr *s, s->s_in.sin_addr.s_addr = *(unsigned long *)hp->h_addr; else { - mu_debug_printf (debug, MU_DIAG_ERROR, - _("invalid IP address: %s\n"), arg); + mu_error (_("invalid IP address: %s"), arg); return EINVAL; } } if (p) { - n = get_port (debug, p); + n = get_port (p); if (!n) { - mu_debug_printf (debug, MU_DIAG_ERROR, - _("invalid port number: %s\n"), p); + mu_error (_("invalid port number: %s"), p); return EINVAL; } s->s_in.sin_port = n; @@ -903,8 +900,7 @@ _mu_m_server_parse_url (mu_debug_t debug, const char *arg, union m_sockaddr *s, s->s_in.sin_port = ((struct sockaddr_in*)defsa)->sin_port; else { - mu_debug_printf (debug, MU_DIAG_ERROR, - _("missing port number\n")); + mu_error (_("missing port number")); return EINVAL; } } @@ -931,10 +927,8 @@ mu_m_server_parse_url (mu_m_server_t msrv, char *arg, int rc; union m_sockaddr s; int salen; - mu_debug_t debug; - - mu_diag_get_debug (&debug); - rc = _mu_m_server_parse_url (debug, arg, &s, &salen, &msrv->defaddr.s.s_sa); + + rc = _mu_m_server_parse_url (arg, &s, &salen, &msrv->defaddr.s.s_sa); if (rc) return rc; if (sa) @@ -948,12 +942,11 @@ mu_m_server_parse_url (mu_m_server_t msrv, char *arg, } static int -server_block_begin (mu_debug_t debug, const char *arg, mu_m_server_t msrv, - void **pdata) +server_block_begin (const char *arg, mu_m_server_t msrv, void **pdata) { union m_sockaddr s; int salen; - if (_mu_m_server_parse_url (debug, arg, &s, &salen, &msrv->defaddr.s.s_sa)) + if (_mu_m_server_parse_url (arg, &s, &salen, &msrv->defaddr.s.s_sa)) return 1; *pdata = add_server (msrv, &s.s_sa, salen, msrv->deftype); return 0; @@ -973,7 +966,7 @@ server_section_parser (enum mu_cfg_section_stage stage, if (node->label == NULL || node->label->type != MU_CFG_STRING) return 1; /* FIXME: should not modify 2nd arg, or it should not be const */ - return server_block_begin (tree->debug, node->label->v.string, + return server_block_begin (node->label->v.string, *section_data, section_data); } break; @@ -990,11 +983,11 @@ server_section_parser (enum mu_cfg_section_stage stage, } static int -_cb_daemon_mode (mu_debug_t debug, void *data, mu_config_value_t *val) +_cb_daemon_mode (void *data, mu_config_value_t *val) { int *pmode = data; - if (mu_cfg_assert_value_type (val, MU_CFG_STRING, debug)) + if (mu_cfg_assert_value_type (val, MU_CFG_STRING)) return 1; if (strcmp (val->v.string, "inetd") == 0 || strcmp (val->v.string, "interactive") == 0) @@ -1003,21 +996,21 @@ _cb_daemon_mode (mu_debug_t debug, void *data, mu_config_value_t *val) *pmode = MODE_DAEMON; else { - mu_cfg_format_error (debug, MU_DEBUG_ERROR, _("unknown daemon mode")); + mu_error (_("unknown daemon mode")); return 1; } return 0; } static int -_cb_port (mu_debug_t debug, void *data, mu_config_value_t *val) +_cb_port (void *data, mu_config_value_t *val) { struct m_default_address *ap = data; unsigned short num; - if (mu_cfg_assert_value_type (val, MU_CFG_STRING, debug)) + if (mu_cfg_assert_value_type (val, MU_CFG_STRING)) return 1; - num = get_port (debug, val->v.string); + num = get_port (val->v.string); if (!num) return 1; ap->s.s_in.sin_family = AF_INET; |