diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-04-08 19:16:04 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-04-08 19:41:25 +0300 |
commit | f9a28c0373000d37b6021eaf845fec23f7608eb8 (patch) | |
tree | 247d11ed04e43f10f8680992cc7411658240fa1e /pop3d | |
parent | f8ee4fc648dd94e25d81e1c2f892cf7d9fc0d500 (diff) | |
download | mailutils-f9a28c0373000d37b6021eaf845fec23f7608eb8.tar.gz mailutils-f9a28c0373000d37b6021eaf845fec23f7608eb8.tar.bz2 |
Improve generation of session identifiers for server programs
* include/mailutils/acl.h (mu_acl_set_session_id): Remove proto.
* include/mailutils/server.h (mu_session_id): Remove extern.
(mu_sid): New proto.
* libmailutils/server/sid.c: New file.
* libmailutils/server/Makefile.am: Add sid.c
* libmailutils/server/ipsrv.c (mu_ip_tcp_accept)
(mu_ip_udp_accept): Remove calls to mu_acl_set_session_id.
(mu_ip_server_accept): Make sure output to mu_strerr is filtered so
that session ID is prepended to each line.
(mu_ip_server_loop): Remove.
* libmailutils/server/msrv.c (mu_m_server_check_acl): Remove call
to mu_acl_set_session_id.
* libmailutils/server/server.c (mu_session_id): Remove variable.
* imap4d/imap4d.c (get_client_address, set_strerr_flt)
(clr_strerr_flt): Remove unused functions.
(imap4d_connection): Simplify.
* pop3d/pop3d.c: Likewise.
Diffstat (limited to 'pop3d')
-rw-r--r-- | pop3d/pop3d.c | 79 |
1 files changed, 3 insertions, 76 deletions
diff --git a/pop3d/pop3d.c b/pop3d/pop3d.c index 133024520..d1c8f39cf 100644 --- a/pop3d/pop3d.c +++ b/pop3d/pop3d.c @@ -392,91 +392,18 @@ pop3d_mainloop (int ifd, int ofd, struct pop3d_srv_config *cfg) return status; } - -static int -set_strerr_flt () -{ - mu_stream_t flt, trans[2]; - int rc; - - rc = mu_stream_ioctl (mu_strerr, MU_IOCTL_TOPSTREAM, MU_IOCTL_OP_GET, trans); - if (rc == 0) - { - char sessidstr[10]; - char *argv[] = { "inline-comment", NULL, "-S", NULL }; - - snprintf (sessidstr, sizeof sessidstr, "%08lx:", mu_session_id); - argv[1] = sessidstr; - rc = mu_filter_create_args (&flt, trans[0], "inline-comment", 3, - (const char **)argv, - MU_FILTER_ENCODE, MU_STREAM_WRITE); - mu_stream_unref (trans[0]); - if (rc == 0) - { - mu_stream_set_buffer (flt, mu_buffer_line, 0); - trans[0] = flt; - trans[1] = NULL; - rc = mu_stream_ioctl (mu_strerr, MU_IOCTL_TOPSTREAM, - MU_IOCTL_OP_SET, trans); - mu_stream_unref (trans[0]); - if (rc) - mu_error (_("%s failed: %s"), "MU_IOCTL_SET_STREAM", - mu_stream_strerror (mu_strerr, rc)); - } - else - mu_error (_("cannot create log filter stream: %s"), mu_strerror (rc)); - } - else - { - mu_error (_("%s failed: %s"), "MU_IOCTL_GET_STREAM", - mu_stream_strerror (mu_strerr, rc)); - } - return rc; -} - -static void -clr_strerr_flt () -{ - mu_stream_t flt, trans[2]; - int rc; - - rc = mu_stream_ioctl (mu_strerr, MU_IOCTL_TOPSTREAM, MU_IOCTL_OP_GET, trans); - if (rc == 0) - { - flt = trans[0]; - - rc = mu_stream_ioctl (flt, MU_IOCTL_TOPSTREAM, MU_IOCTL_OP_GET, trans); - if (rc == 0) - { - mu_stream_unref (trans[0]); - rc = mu_stream_ioctl (mu_strerr, MU_IOCTL_TOPSTREAM, - MU_IOCTL_OP_SET, trans); - if (rc == 0) - mu_stream_unref (flt); - } - } -} - + int pop3d_connection (int fd, struct sockaddr *sa, int salen, struct mu_srv_config *pconf, void *data) { struct pop3d_srv_config *cfg = (struct pop3d_srv_config *) pconf; - int rc; - idle_timeout = pconf->timeout; - pop3d_transcript = pconf->transcript; - - if (mu_log_session_id) - rc = set_strerr_flt (); - else - rc = 1; + idle_timeout = cfg->m_cfg.timeout; + pop3d_transcript = cfg->m_cfg.transcript; pop3d_mainloop (fd, fd, cfg); - - if (rc == 0) - clr_strerr_flt (); return 0; } |