dovecot-2.1: lmtp: Get banner text from login_greeting setting.

dovecot at dovecot.org dovecot at dovecot.org
Tue Jan 17 23:12:36 EET 2012


details:   http://hg.dovecot.org/dovecot-2.1/rev/05434bef2492
changeset: 13943:05434bef2492
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Jan 17 23:12:26 2012 +0200
description:
lmtp: Get banner text from login_greeting setting.

diffstat:

 src/lmtp/client.c        |  12 ++++++++++--
 src/lmtp/lmtp-settings.c |   4 +++-
 src/lmtp/lmtp-settings.h |   1 +
 3 files changed, 14 insertions(+), 3 deletions(-)

diffs (79 lines):

diff -r ded87d81fc74 -r 05434bef2492 src/lmtp/client.c
--- a/src/lmtp/client.c	Tue Jan 17 23:11:16 2012 +0200
+++ b/src/lmtp/client.c	Tue Jan 17 23:12:26 2012 +0200
@@ -8,6 +8,8 @@
 #include "istream.h"
 #include "ostream.h"
 #include "hostpid.h"
+#include "var-expand.h"
+#include "settings-parser.h"
 #include "master-service.h"
 #include "master-service-settings.h"
 #include "mail-namespace.h"
@@ -136,11 +138,13 @@
 	struct mail_storage_service_input input;
 	const struct setting_parser_context *set_parser;
 	const char *error;
+	void **sets;
 
 	memset(&input, 0, sizeof(input));
 	input.module = input.service = "lmtp";
 	input.local_ip = client->local_ip;
 	input.remote_ip = client->remote_ip;
+	input.username = "";
 
 	if (mail_storage_service_read_settings(storage_service, &input,
 					       client->pool,
@@ -148,6 +152,10 @@
 					       &set_parser, &error) < 0)
 		i_fatal("%s", error);
 
+	sets = settings_parser_get_list(set_parser) + 1;
+	settings_var_expand(&lmtp_setting_parser_info, sets[2], client->pool,
+		mail_storage_service_get_var_expand_table(storage_service, &input));
+
 	lmtp_settings_dup(set_parser, client->pool,
 			  &client->lmtp_set, &client->set);
 }
@@ -221,8 +229,8 @@
 	DLLIST_PREPEND(&clients, client);
 	clients_count++;
 
-	client_send_line(client, "220 %s Dovecot LMTP ready",
-			 client->my_domain);
+	client_send_line(client, "220 %s %s", client->my_domain,
+			 client->lmtp_set->login_greeting);
 	i_info("Connect from %s", client_remote_id(client));
 	return client;
 }
diff -r ded87d81fc74 -r 05434bef2492 src/lmtp/lmtp-settings.c
--- a/src/lmtp/lmtp-settings.c	Tue Jan 17 23:11:16 2012 +0200
+++ b/src/lmtp/lmtp-settings.c	Tue Jan 17 23:12:26 2012 +0200
@@ -59,13 +59,15 @@
 static const struct setting_define lmtp_setting_defines[] = {
 	DEF(SET_BOOL, lmtp_proxy),
 	DEF(SET_BOOL, lmtp_save_to_detail_mailbox),
+	DEF(SET_STR_VARS, login_greeting),
 
 	SETTING_DEFINE_LIST_END
 };
 
 static const struct lmtp_settings lmtp_default_settings = {
 	.lmtp_proxy = FALSE,
-	.lmtp_save_to_detail_mailbox = FALSE
+	.lmtp_save_to_detail_mailbox = FALSE,
+	.login_greeting = PACKAGE_NAME" ready."
 };
 
 static const struct setting_parser_info *lmtp_setting_dependencies[] = {
diff -r ded87d81fc74 -r 05434bef2492 src/lmtp/lmtp-settings.h
--- a/src/lmtp/lmtp-settings.h	Tue Jan 17 23:11:16 2012 +0200
+++ b/src/lmtp/lmtp-settings.h	Tue Jan 17 23:12:26 2012 +0200
@@ -7,6 +7,7 @@
 struct lmtp_settings {
 	bool lmtp_proxy;
 	bool lmtp_save_to_detail_mailbox;
+	const char *login_greeting;
 };
 
 extern const struct setting_parser_info lmtp_setting_parser_info;


More information about the dovecot-cvs mailing list