Module Name: src
Committed By: ozaki-r
Date: Fri Apr 3 05:44:14 UTC 2015
Modified Files:
src/sys/net: route.c
Log Message:
Restructure rtcache_lookup2 to make it clear what it does
No functional change.
To generate a diff of this commit:
cvs rdiff -u -r1.137 -r1.138 src/sys/net/route.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/net/route.c
diff -u src/sys/net/route.c:1.137 src/sys/net/route.c:1.138
--- src/sys/net/route.c:1.137 Thu Mar 26 04:38:17 2015
+++ src/sys/net/route.c Fri Apr 3 05:44:13 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: route.c,v 1.137 2015/03/26 04:38:17 ozaki-r Exp $ */
+/* $NetBSD: route.c,v 1.138 2015/04/03 05:44:13 ozaki-r Exp $ */
/*-
* Copyright (c) 1998, 2008 The NetBSD Foundation, Inc.
@@ -94,7 +94,7 @@
#include "opt_route.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: route.c,v 1.137 2015/03/26 04:38:17 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: route.c,v 1.138 2015/04/03 05:44:13 ozaki-r Exp $");
#include <sys/param.h>
#include <sys/kmem.h>
@@ -1420,20 +1420,28 @@ rtcache_lookup2(struct route *ro, const
struct rtentry *rt = NULL;
odst = rtcache_getdst(ro);
-
if (odst == NULL)
- ;
- else if (sockaddr_cmp(odst, dst) != 0)
+ goto miss;
+
+ if (sockaddr_cmp(odst, dst) != 0) {
rtcache_free(ro);
- else if ((rt = rtcache_validate(ro)) == NULL)
- rtcache_clear(ro);
+ goto miss;
+ }
+ rt = rtcache_validate(ro);
if (rt == NULL) {
- *hitp = 0;
- if (rtcache_setdst(ro, dst) == 0)
- rt = _rtcache_init(ro, clone);
- } else
- *hitp = 1;
+ rtcache_clear(ro);
+ goto miss;
+ }
+
+ *hitp = 1;
+ rtcache_invariants(ro);
+
+ return rt;
+miss:
+ *hitp = 0;
+ if (rtcache_setdst(ro, dst) == 0)
+ rt = _rtcache_init(ro, clone);
rtcache_invariants(ro);