Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Mar 2008 17:27:48 GMT
From:      Paolo Pisati <piso@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 136925 for review
Message-ID:  <200803051727.m25HRme8078517@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=136925

Change 136925 by piso@piso_ferret on 2008/03/05 17:26:56

	Don't pass down the entire packet: ProxyCheck.

Affected files ...

.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#65 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#31 edit
.. //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#27 edit

Differences ...

==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias.c#65 (text+ko) ====

@@ -972,8 +972,9 @@
 	tc = (struct tcphdr *)ip_next(pip);
 
 	if (create)
-		proxy_type =
-		    ProxyCheck(la, pip, &proxy_server_address, &proxy_server_port);
+		proxy_type = ProxyCheck(la, &proxy_server_address, 
+		    &proxy_server_port, pip->ip_src, pip->ip_dst, 
+		    tc->th_dport, pip->ip_p);
 	else
 		proxy_type = 0;
 

==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_local.h#31 (text+ko) ====

@@ -321,8 +321,9 @@
 
 /* Transparent proxy routines */
 int
-ProxyCheck(struct libalias *la, struct ip *_pip, struct in_addr *_proxy_server_addr,
-    u_short * _proxy_server_port);
+ProxyCheck(struct libalias *la, struct in_addr *proxy_server_addr,
+    u_short * proxy_server_port, struct in_addr src_addr, 
+    struct in_addr dst_addr, u_short dst_port, u_char ip_p);
 void
 ProxyModify(struct libalias *la, struct alias_link *_lnk, struct ip *_pip,
     int _maxpacketsize, int _proxy_type);

==== //depot/projects/soc2005/libalias/sys/netinet/libalias/alias_proxy.c#27 (text+ko) ====

@@ -563,20 +563,13 @@
 */
 
 int
-ProxyCheck(struct libalias *la, struct ip *pip,
-    struct in_addr *proxy_server_addr,
-    u_short * proxy_server_port)
+ProxyCheck(struct libalias *la, struct in_addr *proxy_server_addr,
+    u_short * proxy_server_port, struct in_addr src_addr, 
+    struct in_addr dst_addr, u_short dst_port, u_char ip_p)
 {
-	u_short dst_port;
-	struct in_addr src_addr;
-	struct in_addr dst_addr;
 	struct proxy_entry *ptr;
 
 	LIBALIAS_LOCK_ASSERT(la);
-	src_addr = pip->ip_src;
-	dst_addr = pip->ip_dst;
-	dst_port = ((struct tcphdr *)ip_next(pip))
-	    ->th_dport;
 
 	ptr = la->proxyList;
 	while (ptr != NULL) {
@@ -584,7 +577,7 @@
 
 		proxy_port = ptr->proxy_port;
 		if ((dst_port == proxy_port || proxy_port == 0)
-		    && pip->ip_p == ptr->proto
+		    && ip_p == ptr->proto
 		    && src_addr.s_addr != ptr->server_addr.s_addr) {
 			struct in_addr src_addr_masked;
 			struct in_addr dst_addr_masked;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803051727.m25HRme8078517>