[dovecot-cvs] dovecot/src/master Makefile.am,1.9,1.10 login-process.c,1.42,1.43 mail-process.c,1.17,1.18 mail-process.h,1.2,1.3 master-settings.c,1.17,1.18 master-settings.h,1.11,1.12

cras at procontrol.fi cras at procontrol.fi
Wed May 14 22:23:07 EEST 2003


Update of /home/cvs/dovecot/src/master
In directory danu:/tmp/cvs-serv27511/src/master

Modified Files:
	Makefile.am login-process.c mail-process.c mail-process.h 
	master-settings.c master-settings.h 
Log Message:
Added support for dynamically loadable imap/pop3 modules.



Index: Makefile.am
===================================================================
RCS file: /home/cvs/dovecot/src/master/Makefile.am,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- Makefile.am	30 Jan 2003 19:01:40 -0000	1.9
+++ Makefile.am	14 May 2003 18:23:05 -0000	1.10
@@ -8,6 +8,7 @@
 	-DSYSCONFDIR=\""$(sysconfdir)"\" \
 	-DPKG_RUNDIR=\""$(localstatedir)/run/$(PACKAGE)"\" \
 	-DPKG_LIBEXECDIR=\""$(pkglibexecdir)"\" \
+	-DPKG_LIBDIR=\""$(libdir)/$(PACKAGE)"\" \
 	-DSSLDIR=\""$(ssldir)\""
 
 dovecot_LDADD = \

Index: login-process.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/login-process.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -d -r1.42 -r1.43
--- login-process.c	8 May 2003 04:01:51 -0000	1.42
+++ login-process.c	14 May 2003 18:23:05 -0000	1.43
@@ -30,6 +30,7 @@
 	struct login_process *newest_nonlisten_process;
 
 	const char *executable;
+	const char *module_dir;
 	unsigned int process_size;
 	int process_type;
 	int *listen_fd, *ssl_listen_fd;
@@ -88,12 +89,16 @@
 		group->process_type = PROCESS_TYPE_IMAP;
 		group->listen_fd = &mail_fd[FD_IMAP];
 		group->ssl_listen_fd = &mail_fd[FD_IMAPS];
+		group->module_dir = set->imap_use_modules ? NULL :
+                        set->imap_modules;
 	} else if (strcmp(login_set->name, "pop3") == 0) {
 		group->executable = set->pop3_executable;
 		group->process_size = set->pop3_process_size;
 		group->process_type = PROCESS_TYPE_POP3;
 		group->listen_fd = &mail_fd[FD_POP3];
 		group->ssl_listen_fd = &mail_fd[FD_POP3S];
+		group->module_dir = set->pop3_use_modules ? NULL :
+                        set->pop3_modules;
 	} else
 		i_panic("Unknown login group name '%s'", login_set->name);
 
@@ -120,9 +125,10 @@
 		master_reply.success =
 			create_mail_process(request->fd, &request->ip,
 					    group->executable,
+					    group->module_dir,
 					    group->process_size,
-					    group->process_type, reply,
-					    (const char *) data);
+					    group->process_type,
+					    reply, (const char *) data);
 	}
 
 	/* reply to login */

Index: mail-process.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/mail-process.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- mail-process.c	8 May 2003 04:35:56 -0000	1.17
+++ mail-process.c	14 May 2003 18:23:05 -0000	1.18
@@ -100,9 +100,9 @@
 }
 
 int create_mail_process(int socket, struct ip_addr *ip,
-			const char *executable, unsigned int process_size,
-			int process_type, struct auth_master_reply *reply,
-			const char *data)
+			const char *executable, const char *module_dir,
+			unsigned int process_size, int process_type,
+			struct auth_master_reply *reply, const char *data)
 {
 	static const char *argv[] = { NULL, NULL, NULL };
 	const char *host, *mail, *chroot_dir, *home_dir, *full_home_dir;
@@ -199,6 +199,8 @@
 				set->mbox_dotlock_change_timeout));
 	if (set->mbox_read_dotlock)
 		env_put("MBOX_READ_DOTLOCK=1");
+
+	env_put(t_strconcat("MODULE_DIR=", module_dir, NULL));
 
 	/* user given environment - may be malicious. virtual_user comes from
 	   auth process, but don't trust that too much either. Some auth

Index: mail-process.h
===================================================================
RCS file: /home/cvs/dovecot/src/master/mail-process.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- mail-process.h	15 Apr 2003 16:58:48 -0000	1.2
+++ mail-process.h	14 May 2003 18:23:05 -0000	1.3
@@ -4,9 +4,9 @@
 struct auth_master_reply;
 
 int create_mail_process(int socket, struct ip_addr *ip,
-			const char *executable, unsigned int process_size,
-			int process_type, struct auth_master_reply *reply,
-			const char *data);
+			const char *executable, const char *module_dir,
+			unsigned int process_size, int process_type,
+			struct auth_master_reply *reply, const char *data);
 
 void mail_process_destroyed(pid_t pid);
 

Index: master-settings.c
===================================================================
RCS file: /home/cvs/dovecot/src/master/master-settings.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- master-settings.c	8 May 2003 03:24:57 -0000	1.17
+++ master-settings.c	14 May 2003 18:23:05 -0000	1.18
@@ -73,10 +73,14 @@
 	/* imap */
 	DEF(SET_STR, imap_executable),
 	DEF(SET_INT, imap_process_size),
+	DEF(SET_BOOL, imap_use_modules),
+	DEF(SET_STR, imap_modules),
 
 	/* pop3 */
 	DEF(SET_STR, pop3_executable),
 	DEF(SET_INT, pop3_process_size),
+	DEF(SET_BOOL, pop3_use_modules),
+	DEF(SET_STR, pop3_modules),
 
 	{ 0, NULL, 0 }
 };
@@ -182,10 +186,14 @@
 	/* imap */
 	MEMBER(imap_executable) PKG_LIBEXECDIR"/imap",
 	MEMBER(imap_process_size) 256,
+	MEMBER(imap_use_modules) FALSE,
+	MEMBER(imap_modules) PKG_LIBDIR"/imap",
 
 	/* pop3 */
 	MEMBER(pop3_executable) PKG_LIBEXECDIR"/pop3",
 	MEMBER(pop3_process_size) 256,
+	MEMBER(pop3_use_modules) FALSE,
+	MEMBER(pop3_modules) PKG_LIBDIR"/imap",
 
 	MEMBER(login_gid) 0,
 	MEMBER(auths) NULL,

Index: master-settings.h
===================================================================
RCS file: /home/cvs/dovecot/src/master/master-settings.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- master-settings.h	8 May 2003 03:24:57 -0000	1.11
+++ master-settings.h	14 May 2003 18:23:05 -0000	1.12
@@ -57,10 +57,14 @@
 	/* imap */
 	const char *imap_executable;
 	unsigned int imap_process_size;
+	int imap_use_modules;
+	const char *imap_modules;
 
 	/* pop3 */
 	const char *pop3_executable;
 	unsigned int pop3_process_size;
+	int pop3_use_modules;
+	const char *pop3_modules;
 
 	/* .. */
 	gid_t login_gid;



More information about the dovecot-cvs mailing list