dovecot-2.0-sslstream: lmtp proxy: Add Received: header.

dovecot at dovecot.org dovecot at dovecot.org
Sat Feb 13 02:56:13 EET 2010


details:   http://hg.dovecot.org/dovecot-2.0-sslstream/rev/c11324abe1a8
changeset: 10289:c11324abe1a8
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Nov 09 20:04:44 2009 -0500
description:
lmtp proxy: Add Received: header.

diffstat:

3 files changed, 8 insertions(+), 4 deletions(-)
src/lmtp/commands.c   |    9 +++++----
src/lmtp/lmtp-proxy.c |    2 ++
src/lmtp/lmtp-proxy.h |    1 +

diffs (66 lines):

diff -r 147627c8433a -r c11324abe1a8 src/lmtp/commands.c
--- a/src/lmtp/commands.c	Mon Nov 09 20:04:28 2009 -0500
+++ b/src/lmtp/commands.c	Mon Nov 09 20:04:44 2009 -0500
@@ -636,13 +636,10 @@ static bool client_input_data_write(stru
 
 	i_stream_destroy(&client->dot_input);
 
-	client->state.received_line =
-		p_strdup(client->state_pool, client_get_received_line(client));
-
 	input = client_get_input(client);
 	client_input_data_write_local(client, input);
 	if (client->proxy != NULL) {
-		lmtp_proxy_start(client->proxy, input,
+		lmtp_proxy_start(client->proxy, input, NULL,
 				 client_proxy_finish, client);
 		ret = FALSE;
 	}
@@ -742,6 +739,9 @@ int cmd_data(struct client *client, cons
 		return 0;
 	}
 
+	client->state.received_line =
+		p_strdup(client->state_pool, client_get_received_line(client));
+
 	i_assert(client->state.mail_data == NULL);
 	client->state.mail_data = buffer_create_dynamic(default_pool, 1024*64);
 
@@ -753,6 +753,7 @@ int cmd_data(struct client *client, cons
 	if (array_count(&client->state.rcpt_to) == 0) {
 		timeout_remove(&client->to_idle);
 		lmtp_proxy_start(client->proxy, client->dot_input,
+				 client->state.received_line,
 				 client_proxy_finish, client);
 		i_stream_unref(&client->dot_input);
 	} else {
diff -r 147627c8433a -r c11324abe1a8 src/lmtp/lmtp-proxy.c
--- a/src/lmtp/lmtp-proxy.c	Mon Nov 09 20:04:28 2009 -0500
+++ b/src/lmtp/lmtp-proxy.c	Mon Nov 09 20:04:44 2009 -0500
@@ -379,6 +379,7 @@ static void lmtp_proxy_data_input(struct
 }
 
 void lmtp_proxy_start(struct lmtp_proxy *proxy, struct istream *data_input,
+		      const char *header,
 		      void (*finish_callback)(void *), void *context)
 {
 	struct lmtp_proxy_connection *const *conns;
@@ -395,6 +396,7 @@ void lmtp_proxy_start(struct lmtp_proxy 
 	for (i = 0; i < count; i++) {
 		conns[i]->data_input =
 			tee_i_stream_create_child(proxy->tee_data_input);
+		lmtp_client_set_data_header(conns[i]->client, header);
 		lmtp_client_send(conns[i]->client, conns[i]->data_input);
 	}
 
diff -r 147627c8433a -r c11324abe1a8 src/lmtp/lmtp-proxy.h
--- a/src/lmtp/lmtp-proxy.h	Mon Nov 09 20:04:28 2009 -0500
+++ b/src/lmtp/lmtp-proxy.h	Mon Nov 09 20:04:44 2009 -0500
@@ -23,6 +23,7 @@ int lmtp_proxy_add_rcpt(struct lmtp_prox
 			const struct lmtp_proxy_settings *set);
 /* Start proxying */
 void lmtp_proxy_start(struct lmtp_proxy *proxy, struct istream *data_input,
+		      const char *header,
 		      void (*finish_callback)(void *), void *context);
 
 #endif


More information about the dovecot-cvs mailing list