mtype, mpath are accessible to maildrop, simplify setup parameters.
authorSunil Nimmagadda <sunil@nimmagadda.net>
Wed, 27 Aug 2014 12:47:09 +0500
changeset 32 efb124b66dbd
parent 31 c1bdfc1a9800
child 33 252e70a700c0
mtype, mpath are accessible to maildrop, simplify setup parameters.
maildrop.c
pop3d.c
pop3d.h
--- a/maildrop.c	Wed Aug 27 11:50:11 2014 +0500
+++ b/maildrop.c	Wed Aug 27 12:47:09 2014 +0500
@@ -48,8 +48,7 @@
 static struct mdrop m;
 
 pid_t
-maildrop_setup(uint32_t session_id, int pair[2], struct passwd *pw,
-    int type, const char *path)
+maildrop_setup(uint32_t session_id, int pair[2], struct passwd *pw)
 {
 	struct imsgev		iev_session;
 	struct event		ev_sigint, ev_sigterm;
@@ -59,6 +58,8 @@
 	pid_t			pid;
 	mode_t			old_mask;
 	int			fd, flags, res = -1;
+	extern int		mtype;
+	extern const char	*mpath;
 
 	if ((pid = fork()) != 0)
 		return (pid);
@@ -70,14 +71,14 @@
 
 	close(pair[0]);
 	setproctitle("maildrop");
-	if ((mb = m_backend_lookup(type)) == NULL)
+	if ((mb = m_backend_lookup(mtype)) == NULL)
 		fatalx("maildrop: invalid backend");
 
-	if (expand(buf, path, sizeof(buf), pw) >= sizeof(buf))
+	if (expand(buf, mpath, sizeof(buf), pw) >= sizeof(buf))
 		fatalx("maildrop: path truncation");
 
 	flags = O_CREAT;
-	if (type == M_MBOX)
+	if (mtype == M_MBOX)
 		flags |= O_RDWR;
 	else
 		flags |= O_RDONLY;
--- a/pop3d.c	Wed Aug 27 11:50:11 2014 +0500
+++ b/pop3d.c	Wed Aug 27 12:47:09 2014 +0500
@@ -47,8 +47,8 @@
 static void usage(void);
 
 static struct imsgev	iev_pop3e;
-static const char	*mpath;
-static int		mtype = M_MBOX;
+const char		*mpath;
+int			mtype = M_MBOX;
 
 int
 main(int argc, char *argv[])
@@ -172,7 +172,7 @@
 	if ((pw = getpwnam(req->user)) == NULL)
 		fatalx("authenticate: getpwnam");
 
-	if (maildrop_setup(imsg->hdr.peerid, pair, pw, mtype, mpath) == -1) {
+	if (maildrop_setup(imsg->hdr.peerid, pair, pw) == -1) {
 		logit(LOG_INFO, "%u: unable to fork maildrop process",
 		    imsg->hdr.peerid);
 		pair[0] = -1;
--- a/pop3d.h	Wed Aug 27 11:50:11 2014 +0500
+++ b/pop3d.h	Wed Aug 27 12:47:09 2014 +0500
@@ -156,7 +156,7 @@
 SPLAY_PROTOTYPE(session_tree, session, entry, session_cmp);
 
 /* maildrop.c */
-pid_t maildrop_setup(uint32_t, int [2], struct passwd *, int, const char *);
+pid_t maildrop_setup(uint32_t, int [2], struct passwd *);
 
 /* util.c */
 void set_nonblocking(int);