diff --git a/include/proto/connection.h b/include/proto/connection.h index 6d2e78401..bbb9759ac 100644 --- a/include/proto/connection.h +++ b/include/proto/connection.h @@ -469,8 +469,8 @@ static inline void conn_init(struct connection *conn) conn->send_wait = NULL; conn->recv_wait = NULL; conn->idle_time = 0; - conn->src = &conn->addr.from; - conn->dst = &conn->addr.to; + conn->src = NULL; + conn->dst = NULL; } /* sets as the connection's owner */ @@ -614,6 +614,9 @@ static inline void conn_free(struct connection *conn) session_unown_conn(sess, conn); } + sockaddr_free(&conn->src); + sockaddr_free(&conn->dst); + /* By convention we always place a NULL where the ctx points to if the * mux is null. It may have been used to store the connection as a * stream_interface's end point for example. diff --git a/include/types/connection.h b/include/types/connection.h index 816e06d0a..f8e4c07f9 100644 --- a/include/types/connection.h +++ b/include/types/connection.h @@ -461,10 +461,6 @@ struct connection { void (*destroy_cb)(struct connection *conn); /* callback to notify of imminent death of the connection */ struct sockaddr_storage *src; /* source address (pool), when known, otherwise NULL */ struct sockaddr_storage *dst; /* destination address (pool), when known, otherwise NULL */ - struct { - struct sockaddr_storage from; /* client address, or address to spoof when connecting to the server */ - struct sockaddr_storage to; /* address reached by the client, or address to connect to */ - } addr; /* addresses of the remote side, client for producer and server for consumer */ unsigned int idle_time; /* Time the connection was added to the idle list, or 0 if not in the idle list */ };