PERFORCE change 45603 for review
Sam Leffler
sam at FreeBSD.org
Mon Jan 19 09:59:23 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=45603
Change 45603 by sam at sam_ebb on 2004/01/19 09:58:47
revert sockaddr assignment optimization not directly related
to socket locking; this should be kept separate
Affected files ...
.. //depot/projects/netperf_socket/sys/netinet/ip_icmp.c#3 edit
Differences ...
==== //depot/projects/netperf_socket/sys/netinet/ip_icmp.c#3 (text+ko) ====
@@ -248,6 +248,7 @@
struct icmp *icp;
struct in_ifaddr *ia;
struct ip *ip = mtod(m, struct ip *);
+ struct sockaddr_in icmpsrc, icmpdst, icmpgw;
int hlen = off;
int icmplen = ip->ip_len;
int i, code;
@@ -310,6 +311,17 @@
if (icp->icmp_type > ICMP_MAXTYPE)
goto raw;
+ /* Initialize */
+ bzero(&icmpsrc, sizeof(icmpsrc));
+ icmpsrc.sin_len = sizeof(struct sockaddr_in);
+ icmpsrc.sin_family = AF_INET;
+ bzero(&icmpdst, sizeof(icmpdst));
+ icmpdst.sin_len = sizeof(struct sockaddr_in);
+ icmpdst.sin_family = AF_INET;
+ bzero(&icmpgw, sizeof(icmpgw));
+ icmpgw.sin_len = sizeof(struct sockaddr_in);
+ icmpgw.sin_family = AF_INET;
+
icmpstat.icps_inhist[icp->icmp_type]++;
code = icp->icmp_code;
switch (icp->icmp_type) {
@@ -369,10 +381,7 @@
if (code)
goto badcode;
code = PRC_QUENCH;
- deliver: {
- struct sockaddr_in icmpsrc =
- { sizeof(struct sockaddr_in), AF_INET };
-
+ deliver:
/*
* Problem with datagram; advise higher level routines.
*/
@@ -442,7 +451,6 @@
(*ctlfunc)(code, (struct sockaddr *)&icmpsrc,
(void *)&icp->icmp_ip);
break;
- }
badcode:
icmpstat.icps_badcode++;
@@ -478,10 +486,7 @@
else
goto reflect;
- case ICMP_MASKREQ: {
- struct sockaddr_in icmpdst =
- { sizeof(struct sockaddr_in), AF_INET };
-
+ case ICMP_MASKREQ:
if (icmpmaskrepl == 0)
break;
/*
@@ -523,16 +528,8 @@
icmpstat.icps_outhist[icp->icmp_type]++;
icmp_reflect(m);
return;
- }
- case ICMP_REDIRECT: {
- struct sockaddr_in icmpsrc =
- { sizeof(struct sockaddr_in), AF_INET };
- struct sockaddr_in icmpdst =
- { sizeof(struct sockaddr_in), AF_INET };
- struct sockaddr_in icmpgw =
- { sizeof(struct sockaddr_in), AF_INET };
-
+ case ICMP_REDIRECT:
if (log_redirect) {
u_long src, dst, gw;
@@ -589,7 +586,6 @@
key_sa_routechange((struct sockaddr *)&icmpsrc);
#endif
break;
- }
/*
* No kernel processing for the following;
More information about the p4-projects
mailing list