summaryrefslogtreecommitdiff
path: root/pop3d
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2017-04-08 19:16:04 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2017-04-08 19:41:25 +0300
commitf9a28c0373000d37b6021eaf845fec23f7608eb8 (patch)
tree247d11ed04e43f10f8680992cc7411658240fa1e /pop3d
parentf8ee4fc648dd94e25d81e1c2f892cf7d9fc0d500 (diff)
downloadmailutils-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.c79
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;
}

Return to:

Send suggestions and report system problems to the System administrator.