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.
diff --git a/include/types/connection.h b/include/types/connection.h
index 292ca2b..2d10704 100644
--- a/include/types/connection.h
+++ b/include/types/connection.h
@@ -34,7 +34,6 @@
 
 #include <netinet/ip.h>
 #include <netinet/ip6.h>
-#include <netinet/tcp.h>
 
 /* referenced below */
 struct connection;
@@ -232,6 +231,11 @@
 	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 358c9bc..7a9f391 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -713,7 +713,7 @@
 
 	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 @@
 			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 @@
 	}
 	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 @@
 			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;