From 3015a2eebd1fa7e3509a7e5166ad1b5beada603f Mon Sep 17 00:00:00 2001 From: David Carlier Date: Mon, 4 Jul 2016 22:51:33 +0100 Subject: [PATCH] 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. --- include/types/connection.h | 6 +++++- src/connection.c | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-) 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;