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