CLEANUP: connection: using internal struct to hold source and dest port.

Originally, tcphdr's source and dest from Linux were used to get the
source and port which led to a build issue on BSD oses.
To avoid side problems related to network then we just use an internal
struct as we need only those two fields.
This commit is contained in:
David Carlier 2016-07-04 22:51:33 +01:00 committed by Willy Tarreau
parent 90fd35c3a7
commit 3015a2eebd
2 changed files with 9 additions and 5 deletions

View File

@ -34,7 +34,6 @@
#include <netinet/ip.h>
#include <netinet/ip6.h>
#include <netinet/tcp.h>
/* referenced below */
struct connection;
@ -232,6 +231,11 @@ struct data_cb {
int (*init)(struct connection *conn); /* data-layer initialization */
};
struct my_tcphdr {
u_int16_t source;
u_int16_t dest;
};
/* a connection source profile defines all the parameters needed to properly
* bind an outgoing connection for a server or proxy.
*/

View File

@ -713,7 +713,7 @@ int conn_recv_netscaler_cip(struct connection *conn, int flag)
if (ip_v == 4) {
struct ip *hdr_ip4;
struct tcphdr *hdr_tcp;
struct my_tcphdr *hdr_tcp;
hdr_ip4 = (struct ip *)line;
@ -731,7 +731,7 @@ int conn_recv_netscaler_cip(struct connection *conn, int flag)
goto missing;
}
hdr_tcp = (struct tcphdr *)(line + (hdr_ip4->ip_hl * 4));
hdr_tcp = (struct my_tcphdr *)(line + (hdr_ip4->ip_hl * 4));
/* update the session's addresses and mark them set */
((struct sockaddr_in *)&conn->addr.from)->sin_family = AF_INET;
@ -746,7 +746,7 @@ int conn_recv_netscaler_cip(struct connection *conn, int flag)
}
else if (ip_v == 6) {
struct ip6_hdr *hdr_ip6;
struct tcphdr *hdr_tcp;
struct my_tcphdr *hdr_tcp;
hdr_ip6 = (struct ip6_hdr *)line;
@ -764,7 +764,7 @@ int conn_recv_netscaler_cip(struct connection *conn, int flag)
goto missing;
}
hdr_tcp = (struct tcphdr *)(line + sizeof(struct ip6_hdr));
hdr_tcp = (struct my_tcphdr *)(line + sizeof(struct ip6_hdr));
/* update the session's addresses and mark them set */
((struct sockaddr_in6 *)&conn->addr.from)->sin6_family = AF_INET6;