changeset 10595:9ab4539b736d HEAD

Added default inet_listeners for imap/pop3-login.
author Timo Sirainen <tss@iki.fi>
date Thu, 28 Jan 2010 00:40:38 +0200
parents 11708783b5b3
children 51452840b8b4
files doc/example-config/conf.d/master.conf src/imap-login/imap-login-settings.c src/lib-master/service-settings.h src/master/master-settings.c src/pop3-login/pop3-login-settings.c
diffstat 5 files changed, 50 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/doc/example-config/conf.d/master.conf	Thu Jan 28 00:35:11 2010 +0200
+++ b/doc/example-config/conf.d/master.conf	Thu Jan 28 00:40:38 2010 +0200
@@ -3,12 +3,12 @@
 #default_vsz_limit = 256M
 
 service imap-login {
-  inet_listener {
-    port = 143
+  inet_listener imap {
+    #port = 143
   }
-  inet_listener {
-    port = 993
-    ssl = yes
+  inet_listener imaps {
+    #port = 993
+    #ssl = yes
   }
 
   # Number of connections to handle before starting a new process. Typically
@@ -24,12 +24,12 @@
 }
 
 service pop3-login {
-  inet_listener {
-    port = 110
+  inet_listener pop3 {
+    #port = 110
   }
-  inet_listener {
-    port = 995
-    ssl = yes
+  inet_listener pop3s {
+    #port = 995
+    #ssl = yes
   }
 }
 
--- a/src/imap-login/imap-login-settings.c	Thu Jan 28 00:35:11 2010 +0200
+++ b/src/imap-login/imap-login-settings.c	Thu Jan 28 00:40:38 2010 +0200
@@ -1,6 +1,7 @@
 /* Copyright (c) 2005-2010 Dovecot authors, see the included COPYING file */
 
 #include "lib.h"
+#include "buffer.h"
 #include "settings-parser.h"
 #include "service-settings.h"
 #include "login-settings.h"
@@ -8,6 +9,20 @@
 
 #include <stddef.h>
 
+/* <settings checks> */
+static struct inet_listener_settings imap_login_inet_listeners_array[] = {
+	{ "imap", "", 143, FALSE },
+	{ "imaps", "", 993, TRUE }
+};
+static struct inet_listener_settings *imap_login_inet_listeners[] = {
+	&imap_login_inet_listeners_array[0],
+	&imap_login_inet_listeners_array[1]
+};
+static buffer_t imap_login_inet_listeners_buf = {
+	imap_login_inet_listeners, sizeof(imap_login_inet_listeners), { 0, }
+};
+/* </settings checks> */
+
 struct service_settings imap_login_service_settings = {
 	.name = "imap-login",
 	.protocol = "imap",
@@ -29,7 +44,8 @@
 
 	.unix_listeners = ARRAY_INIT,
 	.fifo_listeners = ARRAY_INIT,
-	.inet_listeners = ARRAY_INIT
+	.inet_listeners = { { &imap_login_inet_listeners_buf,
+			      sizeof(imap_login_inet_listeners[0]) } }
 };
 
 #undef DEF
--- a/src/lib-master/service-settings.h	Thu Jan 28 00:35:11 2010 +0200
+++ b/src/lib-master/service-settings.h	Thu Jan 28 00:40:38 2010 +0200
@@ -20,6 +20,7 @@
 ARRAY_DEFINE_TYPE(file_listener_settings, struct file_listener_settings *);
 
 struct inet_listener_settings {
+	const char *name;
 	const char *address;
 	unsigned int port;
 	bool ssl;
--- a/src/master/master-settings.c	Thu Jan 28 00:35:11 2010 +0200
+++ b/src/master/master-settings.c	Thu Jan 28 00:40:38 2010 +0200
@@ -58,6 +58,7 @@
 	{ type, #name, offsetof(struct inet_listener_settings, name), NULL }
 
 static const struct setting_define inet_listener_setting_defines[] = {
+	DEF(SET_STR, name),
 	DEF(SET_STR, address),
 	DEF(SET_UINT, port),
 	DEF(SET_BOOL, ssl),
@@ -66,6 +67,7 @@
 };
 
 static const struct inet_listener_settings inet_listener_default_settings = {
+	.name = "",
 	.address = "",
 	.port = 0,
 	.ssl = FALSE
@@ -75,7 +77,7 @@
 	.defines = inet_listener_setting_defines,
 	.defaults = &inet_listener_default_settings,
 
-	.type_offset = (size_t)-1,
+	.type_offset = offsetof(struct inet_listener_settings, name),
 	.struct_size = sizeof(struct inet_listener_settings),
 
 	.parent_offset = (size_t)-1,
@@ -115,8 +117,8 @@
 		       &file_listener_setting_parser_info),
 	DEFLIST_UNIQUE(fifo_listeners, "fifo_listener",
 		       &file_listener_setting_parser_info),
-	DEFLIST(inet_listeners, "inet_listener",
-		&inet_listener_setting_parser_info),
+	DEFLIST_UNIQUE(inet_listeners, "inet_listener",
+		       &inet_listener_setting_parser_info),
 
 	SETTING_DEFINE_LIST_END
 };
--- a/src/pop3-login/pop3-login-settings.c	Thu Jan 28 00:35:11 2010 +0200
+++ b/src/pop3-login/pop3-login-settings.c	Thu Jan 28 00:40:38 2010 +0200
@@ -1,6 +1,7 @@
 /* Copyright (c) 2005-2010 Dovecot authors, see the included COPYING file */
 
 #include "lib.h"
+#include "buffer.h"
 #include "settings-parser.h"
 #include "service-settings.h"
 #include "login-settings.h"
@@ -8,6 +9,20 @@
 
 #include <stddef.h>
 
+/* <settings checks> */
+static struct inet_listener_settings pop3_login_inet_listeners_array[] = {
+	{ "pop3", "", 110, FALSE },
+	{ "pop3s", "", 995, TRUE }
+};
+static struct inet_listener_settings *pop3_login_inet_listeners[] = {
+	&pop3_login_inet_listeners_array[0],
+	&pop3_login_inet_listeners_array[1]
+};
+static buffer_t pop3_login_inet_listeners_buf = {
+	pop3_login_inet_listeners, sizeof(pop3_login_inet_listeners), { 0, }
+};
+
+/* </settings checks> */
 struct service_settings pop3_login_service_settings = {
 	.name = "pop3-login",
 	.protocol = "pop3",
@@ -29,7 +44,8 @@
 
 	.unix_listeners = ARRAY_INIT,
 	.fifo_listeners = ARRAY_INIT,
-	.inet_listeners = ARRAY_INIT
+	.inet_listeners = { { &pop3_login_inet_listeners_buf,
+			      sizeof(pop3_login_inet_listeners[0]) } }
 };
 
 static const struct setting_define pop3_login_setting_defines[] = {