PERFORCE change 136925 for review
Paolo Pisati
piso at FreeBSD.org
Wed Mar 5 17:27:49 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=136925
Change 136925 by piso at 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;
More information about the p4-projects
mailing list