Module Name:    src
Committed By:   ozaki-r
Date:           Tue Apr 19 04:13:56 UTC 2016

Modified Files:
        src/sys/netinet: if_arp.c if_inarp.h

Log Message:
Constify rtentry of arpresolve

We don't need to (rather shouldn't) modify rtentry in there.


To generate a diff of this commit:
cvs rdiff -u -r1.207 -r1.208 src/sys/netinet/if_arp.c
cvs rdiff -u -r1.48 -r1.49 src/sys/netinet/if_inarp.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/netinet/if_arp.c
diff -u src/sys/netinet/if_arp.c:1.207 src/sys/netinet/if_arp.c:1.208
--- src/sys/netinet/if_arp.c:1.207	Mon Apr 18 02:24:42 2016
+++ src/sys/netinet/if_arp.c	Tue Apr 19 04:13:56 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_arp.c,v 1.207 2016/04/18 02:24:42 ozaki-r Exp $	*/
+/*	$NetBSD: if_arp.c,v 1.208 2016/04/19 04:13:56 ozaki-r Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2000, 2008 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.207 2016/04/18 02:24:42 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_arp.c,v 1.208 2016/04/19 04:13:56 ozaki-r Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -685,7 +685,7 @@ arprequest(struct ifnet *ifp,
  * Any other value indicates an error.
  */
 int
-arpresolve(struct ifnet *ifp, struct rtentry *rt, struct mbuf *m,
+arpresolve(struct ifnet *ifp, const struct rtentry *rt, struct mbuf *m,
     const struct sockaddr *dst, void *desten, size_t destlen)
 {
 	struct llentry *la;
@@ -707,18 +707,6 @@ arpresolve(struct ifnet *ifp, struct rte
 		return 0;
 	}
 
-	/*
-	 * Re-send the ARP request when appropriate.
-	 */
-#ifdef	DIAGNOSTIC
-	if (rt->rt_expire == 0) {
-		/* This should never happen. (Should it? -gwr) */
-		printf("%s: unresolved and rt_expire == 0\n", __func__);
-		/* Set expiration time to now (expired). */
-		rt->rt_expire = time_uptime;
-	}
-#endif
-
 notfound:
 #ifdef IFF_STATICARP /* FreeBSD */
 #define _IFF_NOARP (IFF_NOARP | IFF_STATICARP)
@@ -859,17 +847,18 @@ notfound:
 			    &satocsin(dst)->sin_addr, enaddr);
 		} else {
 			struct sockaddr_in sin;
+			struct rtentry *_rt;
 
 			sockaddr_in_init(&sin, &la->r_l3addr.addr4, 0);
 
 			/* XXX */
-			rt = rtalloc1((struct sockaddr *)&sin, 0);
-			if (rt == NULL)
+			_rt = rtalloc1((struct sockaddr *)&sin, 0);
+			if (_rt == NULL)
 				goto bad;
-			arprequest(ifp, &satocsin(rt->rt_ifa->ifa_addr)->sin_addr,
+			arprequest(ifp,
+			    &satocsin(_rt->rt_ifa->ifa_addr)->sin_addr,
 			    &satocsin(dst)->sin_addr, enaddr);
-			rtfree(rt);
-			rt = NULL;
+			rtfree(_rt);
 		}
 		return error;
 	}

Index: src/sys/netinet/if_inarp.h
diff -u src/sys/netinet/if_inarp.h:1.48 src/sys/netinet/if_inarp.h:1.49
--- src/sys/netinet/if_inarp.h:1.48	Thu Apr  7 03:22:15 2016
+++ src/sys/netinet/if_inarp.h	Tue Apr 19 04:13:56 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_inarp.h,v 1.48 2016/04/07 03:22:15 christos Exp $	*/
+/*	$NetBSD: if_inarp.h,v 1.49 2016/04/19 04:13:56 ozaki-r Exp $	*/
 
 /*
  * Copyright (c) 1982, 1986, 1993
@@ -75,7 +75,7 @@ MALLOC_DECLARE(M_IPARP);
 extern struct ifqueue arpintrq;
 void arp_ifinit(struct ifnet *, struct ifaddr *);
 void arp_rtrequest(int, struct rtentry *, const struct rt_addrinfo *);
-int arpresolve(struct ifnet *, struct rtentry *, struct mbuf *,
+int arpresolve(struct ifnet *, const struct rtentry *, struct mbuf *,
     const struct sockaddr *, void *, size_t);
 void arpintr(void);
 void arprequest(struct ifnet *, const struct in_addr *, const struct in_addr *,

Reply via email to