summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
authormelifaro <melifaro@FreeBSD.org>2016-01-09 06:26:40 +0000
committermelifaro <melifaro@FreeBSD.org>2016-01-09 06:26:40 +0000
commit334ff06bcef619c89e6500848accdb1340289f83 (patch)
tree6afb9cd5c979cfb38663bf71861b84d2b727a0dc /sys/net
parentff6e5f3297d4154b415bafd909da107571ae1228 (diff)
downloadFreeBSD-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.c15
-rw-r--r--sys/net/route.h2
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
OpenPOWER on IntegriCloud