Skip to content

Commit

Permalink
lib-smtp: smtp-server-connection - Use connection properties for remo…
Browse files Browse the repository at this point in the history
…te ip:port.
  • Loading branch information
stephanbosch committed Mar 1, 2019
1 parent ab7079b commit bb57571
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 deletions.
21 changes: 13 additions & 8 deletions src/lib-smtp/smtp-server-connection.c
Expand Up @@ -1030,8 +1030,9 @@ smtp_server_connection_create(struct smtp_server *server,
set, fd_in, fd_out, remote_ip, remote_port,
callbacks, context);
name = smtp_server_connection_get_name(conn);
connection_init_server(server->conn_list,
&conn->conn, name, fd_in, fd_out);
connection_init_server_ip(server->conn_list,
&conn->conn, name, fd_in, fd_out,
remote_ip, remote_port);

conn->ssl_start = ssl_start;
if (ssl_start)
Expand Down Expand Up @@ -1065,6 +1066,10 @@ smtp_server_connection_create_from_streams(struct smtp_server *server,
fd_in, fd_out, remote_ip, remote_port,
callbacks, context);
name = smtp_server_connection_get_name(conn);
if (remote_ip != NULL && remote_ip->family != 0)
conn->conn.remote_ip = *remote_ip;
if (remote_port != 0)
conn->conn.remote_port = remote_port;
connection_init_from_streams(server->conn_list,
&conn->conn, name, input, output);
conn->created_from_streams = TRUE;
Expand Down Expand Up @@ -1547,8 +1552,8 @@ void smtp_server_connection_get_proxy_data(struct smtp_server_connection *conn,
struct smtp_proxy_data *proxy_data)
{
i_zero(proxy_data);
proxy_data->source_ip = conn->remote_ip;
proxy_data->source_port = conn->remote_port;
proxy_data->source_ip = conn->conn.remote_ip;
proxy_data->source_port = conn->conn.remote_port;
if (conn->helo.domain_valid)
proxy_data->helo = conn->helo.domain;
proxy_data->login = conn->username;
Expand All @@ -1570,9 +1575,9 @@ void smtp_server_connection_set_proxy_data(struct smtp_server_connection *conn,
const struct smtp_proxy_data *proxy_data)
{
if (proxy_data->source_ip.family != 0)
conn->remote_ip = proxy_data->source_ip;
conn->conn.remote_ip = proxy_data->source_ip;
if (proxy_data->source_port != 0)
conn->remote_port = proxy_data->source_port;
conn->conn.remote_port = proxy_data->source_port;
if (proxy_data->helo != NULL) {
i_free(conn->helo_domain);
conn->helo_domain = i_strdup(proxy_data->helo);
Expand All @@ -1596,8 +1601,8 @@ void smtp_server_connection_set_proxy_data(struct smtp_server_connection *conn,
struct smtp_proxy_data full_data;

i_zero(&full_data);
full_data.source_ip = conn->remote_ip;
full_data.source_port = conn->remote_port;
full_data.source_ip = conn->conn.remote_ip;
full_data.source_port = conn->conn.remote_port;
full_data.helo = conn->helo.domain;
full_data.login = conn->username;
full_data.proto = conn->proxy_proto;
Expand Down
4 changes: 2 additions & 2 deletions src/lib-smtp/smtp-server-transaction.c
Expand Up @@ -156,8 +156,8 @@ void smtp_server_transaction_write_trace_record(string_t *str,
else
str_append(str, "unknown");
host = "";
if (conn->remote_ip.family != 0)
host = net_ip2addr(&conn->remote_ip);
if (conn->conn.remote_ip.family != 0)
host = net_ip2addr(&conn->conn.remote_ip);
if (host[0] != '\0') {
str_append(str, " ([");
str_append(str, host);
Expand Down

0 comments on commit bb57571

Please sign in to comment.