View | Details | Raw Unified | Return to bug 230498 | Differences between
and this patch

Collapse All | Expand All

(-)b/sys/net/rtsock.c (-3 / +7 lines)
Lines 1566-1577 sysctl_dumpentry(struct radix_node *rn, void *vw) Link Here
1566
	info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask(rt_key(rt),
1566
	info.rti_info[RTAX_NETMASK] = rtsock_fix_netmask(rt_key(rt),
1567
	    rt_mask(rt), &ss);
1567
	    rt_mask(rt), &ss);
1568
	info.rti_info[RTAX_GENMASK] = 0;
1568
	info.rti_info[RTAX_GENMASK] = 0;
1569
	if (rt->rt_ifp) {
1569
	IF_ADDR_RLOCK(rt->rt_ifp);
1570
	if (rt->rt_ifp && !(rt->rt_ifp->if_flags & IFF_DYING)) {
1570
		info.rti_info[RTAX_IFP] = rt->rt_ifp->if_addr->ifa_addr;
1571
		info.rti_info[RTAX_IFP] = rt->rt_ifp->if_addr->ifa_addr;
1571
		info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr;
1572
		info.rti_info[RTAX_IFA] = rt->rt_ifa->ifa_addr;
1572
		if (rt->rt_ifp->if_flags & IFF_POINTOPOINT)
1573
		if (rt->rt_ifp->if_flags & IFF_POINTOPOINT)
1573
			info.rti_info[RTAX_BRD] = rt->rt_ifa->ifa_dstaddr;
1574
			info.rti_info[RTAX_BRD] = rt->rt_ifa->ifa_dstaddr;
1574
	}
1575
	}
1576
	IF_ADDR_RUNLOCK(rt->rt_ifp);
1575
	if ((error = rtsock_msg_buffer(RTM_GET, &info, w, &size)) != 0)
1577
	if ((error = rtsock_msg_buffer(RTM_GET, &info, w, &size)) != 0)
1576
		return (error);
1578
		return (error);
1577
	if (w->w_req && w->w_tmem) {
1579
	if (w->w_req && w->w_tmem) {
Lines 1921-1929 sysctl_rtsock(SYSCTL_HANDLER_ARGS) Link Here
1921
		for (error = 0; error == 0 && i <= lim; i++) {
1923
		for (error = 0; error == 0 && i <= lim; i++) {
1922
			rnh = rt_tables_get_rnh(fib, i);
1924
			rnh = rt_tables_get_rnh(fib, i);
1923
			if (rnh != NULL) {
1925
			if (rnh != NULL) {
1924
				RIB_RLOCK(rnh); 
1926
				RIB_RLOCK(rnh);
1925
			    	error = rnh->rnh_walktree(&rnh->head,
1927
				NET_EPOCH_ENTER();
1928
				error = rnh->rnh_walktree(&rnh->head,
1926
				    sysctl_dumpentry, &w);
1929
				    sysctl_dumpentry, &w);
1930
				NET_EPOCH_EXIT();
1927
				RIB_RUNLOCK(rnh);
1931
				RIB_RUNLOCK(rnh);
1928
			} else if (af != 0)
1932
			} else if (af != 0)
1929
				error = EAFNOSUPPORT;
1933
				error = EAFNOSUPPORT;

Return to bug 230498