diff options
author | melifaro <melifaro@FreeBSD.org> | 2016-01-09 06:26:40 +0000 |
---|---|---|
committer | melifaro <melifaro@FreeBSD.org> | 2016-01-09 06:26:40 +0000 |
commit | 334ff06bcef619c89e6500848accdb1340289f83 (patch) | |
tree | 6afb9cd5c979cfb38663bf71861b84d2b727a0dc /sys/net | |
parent | ff6e5f3297d4154b415bafd909da107571ae1228 (diff) | |
download | FreeBSD-src-334ff06bcef619c89e6500848accdb1340289f83.zip FreeBSD-src-334ff06bcef619c89e6500848accdb1340289f83.tar.gz |
(Temporarily) remove route_redirect_event eventhandler.
Such handler should pass different set of variables, instead
of directly providing 2 locked route entries.
Given that it hasn't been really used since at least 2012, remove
current code.
Will re-add it after finishing most major routing-related changes.
Discussed with: np
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/route.c | 15 | ||||
-rw-r--r-- | sys/net/route.h | 2 |
2 files changed, 2 insertions, 15 deletions
diff --git a/sys/net/route.c b/sys/net/route.c index 4df9690..9698dd3 100644 --- a/sys/net/route.c +++ b/sys/net/route.c @@ -568,7 +568,7 @@ rtredirect_fib(struct sockaddr *dst, struct sockaddr *src, u_int fibnum) { - struct rtentry *rt, *rt0 = NULL; + struct rtentry *rt; int error = 0; short *stat = NULL; struct rt_addrinfo info; @@ -627,7 +627,7 @@ rtredirect_fib(struct sockaddr *dst, * Create new route, rather than smashing route to net. */ create: - rt0 = rt; + RTFREE(rt); rt = NULL; flags |= RTF_DYNAMIC; @@ -637,21 +637,14 @@ rtredirect_fib(struct sockaddr *dst, info.rti_info[RTAX_NETMASK] = netmask; info.rti_ifa = ifa; info.rti_flags = flags; - if (rt0 != NULL) - RT_UNLOCK(rt0); /* drop lock to avoid LOR with RNH */ error = rtrequest1_fib(RTM_ADD, &info, &rt, fibnum); if (rt != NULL) { RT_LOCK(rt); - if (rt0 != NULL) - EVENTHANDLER_INVOKE(route_redirect_event, rt0, rt, dst); flags = rt->rt_flags; } - if (rt0 != NULL) - RTFREE(rt0); stat = &V_rtstat.rts_dynamic; } else { - struct rtentry *gwrt; /* * Smash the current notion of the gateway to @@ -669,11 +662,7 @@ rtredirect_fib(struct sockaddr *dst, RADIX_NODE_HEAD_LOCK(rnh); RT_LOCK(rt); rt_setgate(rt, rt_key(rt), gateway); - gwrt = rtalloc1(gateway, 1, RTF_RNH_LOCKED); RADIX_NODE_HEAD_UNLOCK(rnh); - EVENTHANDLER_INVOKE(route_redirect_event, rt, gwrt, dst); - if (gwrt) - RTFREE_LOCKED(gwrt); } } else error = EHOSTUNREACH; diff --git a/sys/net/route.h b/sys/net/route.h index 7c69e1c..473e402 100644 --- a/sys/net/route.h +++ b/sys/net/route.h @@ -468,8 +468,6 @@ int rib_lookup_info(uint32_t, const struct sockaddr *, uint32_t, uint32_t, void rib_free_info(struct rt_addrinfo *info); #include <sys/eventhandler.h> -typedef void (*rtevent_redirect_fn)(void *, struct rtentry *, struct rtentry *, struct sockaddr *); -EVENTHANDLER_DECLARE(route_redirect_event, rtevent_redirect_fn); #endif #endif |