diff --git a/include/types/connection.h b/include/types/connection.h index 292ca2bd64..2d10704c11 100644 --- a/include/types/connection.h +++ b/include/types/connection.h @@ -34,7 +34,6 @@ #include #include -#include /* 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. */ diff --git a/src/connection.c b/src/connection.c index 358c9bcb1f..7a9f3913ca 100644 --- a/src/connection.c +++ b/src/connection.c @@ -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;