Always use inp fib in the inp_lookup_mcast_ifp().
inp_lookup_mcast_ifp() is static and is only used in the inp_join_group(). The latter function is also static, and is only used in the inp_setmoptions(), which relies on inp being non-NULL. As a result, in the current code, inp_lookup_mcast_ifp() is always called with non-NULL inp. Eliminate unused RT_DEFAULT_FIB condition and always use inp fib instead. Differential Revision: https://reviews.freebsd.org/D29594 Reviewed by: kp MFC after: 2 weeks
This commit is contained in:
parent
15ca662208
commit
c3a456defa
@ -1865,8 +1865,7 @@ inp_getmoptions(struct inpcb *inp, struct sockopt *sopt)
|
||||
* specific physical links in the networking stack, or which need
|
||||
* to join link-scope groups before IPv4 addresses are configured.
|
||||
*
|
||||
* If inp is non-NULL, use this socket's current FIB number for any
|
||||
* required FIB lookup.
|
||||
* Use this socket's current FIB number for any required FIB lookup.
|
||||
* If ina is INADDR_ANY, look up the group address in the unicast FIB,
|
||||
* and use its ifp; usually, this points to the default next-hop.
|
||||
*
|
||||
@ -1887,8 +1886,8 @@ inp_lookup_mcast_ifp(const struct inpcb *inp,
|
||||
struct rm_priotracker in_ifa_tracker;
|
||||
struct ifnet *ifp;
|
||||
struct nhop_object *nh;
|
||||
uint32_t fibnum;
|
||||
|
||||
KASSERT(inp != NULL, ("%s: inp must not be NULL", __func__));
|
||||
KASSERT(gsin->sin_family == AF_INET, ("%s: not AF_INET", __func__));
|
||||
KASSERT(IN_MULTICAST(ntohl(gsin->sin_addr.s_addr)),
|
||||
("%s: not multicast", __func__));
|
||||
@ -1901,8 +1900,7 @@ inp_lookup_mcast_ifp(const struct inpcb *inp,
|
||||
if_ref(ifp);
|
||||
IN_IFADDR_RUNLOCK(&in_ifa_tracker);
|
||||
} else {
|
||||
fibnum = inp ? inp->inp_inc.inc_fibnum : RT_DEFAULT_FIB;
|
||||
nh = fib4_lookup(fibnum, gsin->sin_addr, 0, NHR_NONE, 0);
|
||||
nh = fib4_lookup(inp->inp_inc.inc_fibnum, gsin->sin_addr, 0, NHR_NONE, 0);
|
||||
if (nh != NULL) {
|
||||
ifp = nh->nh_ifp;
|
||||
if_ref(ifp);
|
||||
|
Loading…
Reference in New Issue
Block a user