PERFORCE change 43592 for review

Sam Leffler sam at FreeBSD.org
Sun Dec 7 15:56:54 PST 2003


http://perforce.freebsd.org/chv.cgi?CH=43592

Change 43592 by sam at sam_ebb on 2003/12/07 15:56:45

	micro-optimization from bde: use c99 local struct initializations
	instead of bzero calls

Affected files ...

.. //depot/projects/netperf/sys/netinet/ip_icmp.c#12 edit

Differences ...

==== //depot/projects/netperf/sys/netinet/ip_icmp.c#12 (text+ko) ====

@@ -248,7 +248,6 @@
 	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;
@@ -311,17 +310,6 @@
 	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) {
@@ -381,7 +369,10 @@
 		if (code)
 			goto badcode;
 		code = PRC_QUENCH;
-	deliver:
+	deliver: {
+		struct sockaddr_in icmpsrc =
+			{ sizeof(struct sockaddr_in), AF_INET };
+
 		/*
 		 * Problem with datagram; advise higher level routines.
 		 */
@@ -449,6 +440,7 @@
 			(*ctlfunc)(code, (struct sockaddr *)&icmpsrc,
 				   (void *)&icp->icmp_ip);
 		break;
+	}
 
 	badcode:
 		icmpstat.icps_badcode++;
@@ -484,7 +476,10 @@
 		else
 			goto reflect;
 
-	case ICMP_MASKREQ:
+	case ICMP_MASKREQ: {
+		struct sockaddr_in icmpdst =
+			{ sizeof(struct sockaddr_in), AF_INET };
+
 		if (icmpmaskrepl == 0)
 			break;
 		/*
@@ -526,8 +521,16 @@
 		icmpstat.icps_outhist[icp->icmp_type]++;
 		icmp_reflect(m);
 		return;
+	}
 
-	case ICMP_REDIRECT:
+	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 };
+
 		if (log_redirect) {
 			u_long src, dst, gw;
 
@@ -580,6 +583,7 @@
 		key_sa_routechange((struct sockaddr *)&icmpsrc);
 #endif
 		break;
+	}
 
 	/*
 	 * No kernel processing for the following;


More information about the p4-projects mailing list