changeset 4153:690c72358cd5 HEAD

Added pop3_lock_session setting.
author Timo Sirainen <tss@iki.fi>
date Sun, 09 Apr 2006 18:50:53 +0300
parents e2edd333c473
children 7a4c7a12da9e
files dovecot-example.conf src/master/master-settings.c src/master/master-settings.h src/pop3/client.c src/pop3/common.h src/pop3/main.c
diffstat 6 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/dovecot-example.conf	Sun Apr 09 18:50:22 2006 +0300
+++ b/dovecot-example.conf	Sun Apr 09 18:50:53 2006 +0300
@@ -507,7 +507,13 @@
   # from new ones. Some clients still wish to use this though. Enabling this
   # makes RSET command clear all \Seen flags from messages.
   #pop3_enable_last = no
-  
+
+  # If mail has X-UIDL header, use it as the mail's UIDL.
+  #pop3_reuse_xuidl = no
+
+  # Keep the mailbox locked for the entire POP3 session.
+  #pop3_lock_session = no
+
   # POP3 UIDL format to use. You can use following variables:
   #
   #  %v - Mailbox UIDVALIDITY
--- a/src/master/master-settings.c	Sun Apr 09 18:50:22 2006 +0300
+++ b/src/master/master-settings.c	Sun Apr 09 18:50:53 2006 +0300
@@ -145,6 +145,7 @@
 	DEF(SET_BOOL, pop3_no_flag_updates),
 	DEF(SET_BOOL, pop3_enable_last),
 	DEF(SET_BOOL, pop3_reuse_xuidl),
+	DEF(SET_BOOL, pop3_lock_session),
 	DEF(SET_STR, pop3_uidl_format),
 	DEF(SET_STR, pop3_client_workarounds),
 	DEF(SET_STR, pop3_logout_format),
@@ -351,6 +352,7 @@
 	MEMBER(pop3_no_flag_updates) FALSE,
 	MEMBER(pop3_enable_last) FALSE,
 	MEMBER(pop3_reuse_xuidl) FALSE,
+	MEMBER(pop3_lock_session) FALSE,
 	MEMBER(pop3_uidl_format) NULL,
 	MEMBER(pop3_client_workarounds) NULL,
 	MEMBER(pop3_logout_format) "top=%t/%p, retr=%r/%b, del=%d/%m, size=%s",
--- a/src/master/master-settings.h	Sun Apr 09 18:50:22 2006 +0300
+++ b/src/master/master-settings.h	Sun Apr 09 18:50:53 2006 +0300
@@ -108,6 +108,7 @@
 	bool pop3_no_flag_updates;
 	bool pop3_enable_last;
 	bool pop3_reuse_xuidl;
+	bool pop3_lock_session;
 	const char *pop3_uidl_format;
 	const char *pop3_client_workarounds;
 	const char *pop3_logout_format;
--- a/src/pop3/client.c	Sun Apr 09 18:50:22 2006 +0300
+++ b/src/pop3/client.c	Sun Apr 09 18:50:53 2006 +0300
@@ -152,6 +152,8 @@
 	flags = 0;
 	if (no_flag_updates)
 		flags |= MAILBOX_OPEN_KEEP_RECENT;
+	if (lock_session)
+		flags |= MAILBOX_OPEN_KEEP_LOCKED;
 	client->mailbox = mailbox_open(storage, "INBOX", NULL, flags);
 	if (client->mailbox == NULL) {
 		i_error("Couldn't open INBOX: %s",
--- a/src/pop3/common.h	Sun Apr 09 18:50:22 2006 +0300
+++ b/src/pop3/common.h	Sun Apr 09 18:50:53 2006 +0300
@@ -18,7 +18,7 @@
 
 extern struct ioloop *ioloop;
 extern enum client_workarounds client_workarounds;
-extern bool enable_last_command, no_flag_updates, reuse_xuidl;
+extern bool enable_last_command, no_flag_updates, reuse_xuidl, lock_session;
 extern const char *uidl_format, *logout_format;
 extern enum uidl_keys uidl_keymask;
 
--- a/src/pop3/main.c	Sun Apr 09 18:50:22 2006 +0300
+++ b/src/pop3/main.c	Sun Apr 09 18:50:53 2006 +0300
@@ -45,6 +45,7 @@
 bool enable_last_command = FALSE;
 bool no_flag_updates = FALSE;
 bool reuse_xuidl = FALSE;
+bool lock_session = FALSE;
 const char *uidl_format, *logout_format;
 enum uidl_keys uidl_keymask;
 
@@ -207,6 +208,7 @@
 	enable_last_command = getenv("POP3_ENABLE_LAST") != NULL;
 	no_flag_updates = getenv("POP3_NO_FLAG_UPDATES") != NULL;
 	reuse_xuidl = getenv("POP3_REUSE_XUIDL") != NULL;
+	lock_session = getenv("POP3_LOCK_SESSION") != NULL;
 
 	uidl_format = getenv("POP3_UIDL_FORMAT");
 	if (uidl_format == NULL || *uidl_format == '\0')