Module Name: src
Committed By: pgoyette
Date: Mon Apr 29 05:42:09 UTC 2019
Modified Files:
src/sys/compat/common: rtsock_70.c
src/sys/net: route.h rtsock.c rtsock_shared.c
Log Message:
For the rtsock compat code, make sure we create the "oroute" sysctl
tree. Otherwise a 5.2 version of getifaddrs(2) gets errors.
This makes the 5.2 version of ifconfig(8) behave the same on both
NetBSD-8 and -current. HOWEVER, both of them print nothing (for
``ifconfig -l'' command) so there's still a bug somewhere.
As reported originally by der Mouse.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/compat/common/rtsock_70.c
cvs rdiff -u -r1.120 -r1.121 src/sys/net/route.h
cvs rdiff -u -r1.248 -r1.249 src/sys/net/rtsock.c
cvs rdiff -u -r1.5 -r1.6 src/sys/net/rtsock_shared.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/compat/common/rtsock_70.c
diff -u src/sys/compat/common/rtsock_70.c:1.5 src/sys/compat/common/rtsock_70.c:1.6
--- src/sys/compat/common/rtsock_70.c:1.5 Fri Mar 1 11:06:56 2019
+++ src/sys/compat/common/rtsock_70.c Mon Apr 29 05:42:09 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rtsock_70.c,v 1.5 2019/03/01 11:06:56 pgoyette Exp $ */
+/* $NetBSD: rtsock_70.c,v 1.6 2019/04/29 05:42:09 pgoyette Exp $ */
/*
* Copyright (c) 2016 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtsock_70.c,v 1.5 2019/03/01 11:06:56 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock_70.c,v 1.6 2019/04/29 05:42:09 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -46,6 +46,8 @@ __KERNEL_RCSID(0, "$NetBSD: rtsock_70.c,
#include <compat/net/route.h>
#include <compat/net/route_70.h>
+struct sysctllog *clog;
+
void
compat_70_rt_newaddrmsg1(int cmd, struct ifaddr *ifa)
{
@@ -122,12 +124,14 @@ rtsock_70_init(void)
MODULE_HOOK_SET(rtsock_newaddr_70_hook, "rts_70",
compat_70_rt_newaddrmsg1);
MODULE_HOOK_SET(rtsock_iflist_70_hook, "rts_70", compat_70_iflist_addr);
+ sysctl_net_route_setup(&clog, PF_OROUTE, "ortable");
}
void
rtsock_70_fini(void)
{
+ sysctl_teardown(&clog);
MODULE_HOOK_UNSET(rtsock_newaddr_70_hook);
MODULE_HOOK_UNSET(rtsock_iflist_70_hook);
}
Index: src/sys/net/route.h
diff -u src/sys/net/route.h:1.120 src/sys/net/route.h:1.121
--- src/sys/net/route.h:1.120 Tue Oct 30 05:54:42 2018
+++ src/sys/net/route.h Mon Apr 29 05:42:09 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: route.h,v 1.120 2018/10/30 05:54:42 ozaki-r Exp $ */
+/* $NetBSD: route.h,v 1.121 2019/04/29 05:42:09 pgoyette Exp $ */
/*
* Copyright (c) 1980, 1986, 1993
@@ -544,6 +544,8 @@ struct rtentry *
int (*)(struct rtentry *, void *), void *);
void rtbl_init(void);
+void sysctl_net_route_setup(struct sysctllog **, int, const char *);
+
#endif /* _KERNEL */
#endif /* !_NET_ROUTE_H_ */
Index: src/sys/net/rtsock.c
diff -u src/sys/net/rtsock.c:1.248 src/sys/net/rtsock.c:1.249
--- src/sys/net/rtsock.c:1.248 Fri Mar 1 11:06:57 2019
+++ src/sys/net/rtsock.c Mon Apr 29 05:42:09 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rtsock.c,v 1.248 2019/03/01 11:06:57 pgoyette Exp $ */
+/* $NetBSD: rtsock.c,v 1.249 2019/04/29 05:42:09 pgoyette Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.248 2019/03/01 11:06:57 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1.249 2019/04/29 05:42:09 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -101,7 +101,6 @@ __KERNEL_RCSID(0, "$NetBSD: rtsock.c,v 1
#endif
static int if_addrflags(struct ifaddr *);
-static void sysctl_net_route_setup(struct sysctllog **);
#include <net/rtsock_shared.c>
@@ -498,24 +497,24 @@ again:
return error;
}
-static void
-sysctl_net_route_setup(struct sysctllog **clog)
+void
+sysctl_net_route_setup(struct sysctllog **clog, int pf, const char *name)
{
const struct sysctlnode *rnode = NULL;
sysctl_createv(clog, 0, NULL, &rnode,
CTLFLAG_PERMANENT,
- CTLTYPE_NODE, DOMAINNAME,
+ CTLTYPE_NODE, name,
SYSCTL_DESCR("PF_ROUTE information"),
NULL, 0, NULL, 0,
- CTL_NET, PF_XROUTE, CTL_EOL);
+ CTL_NET, pf, CTL_EOL);
sysctl_createv(clog, 0, NULL, NULL,
CTLFLAG_PERMANENT,
CTLTYPE_NODE, "rtable",
SYSCTL_DESCR("Routing table information"),
sysctl_rtable, 0, NULL, 0,
- CTL_NET, PF_XROUTE, 0 /* any protocol */, CTL_EOL);
+ CTL_NET, pf, 0 /* any protocol */, CTL_EOL);
sysctl_createv(clog, 0, &rnode, NULL,
CTLFLAG_PERMANENT,
Index: src/sys/net/rtsock_shared.c
diff -u src/sys/net/rtsock_shared.c:1.5 src/sys/net/rtsock_shared.c:1.6
--- src/sys/net/rtsock_shared.c:1.5 Wed Apr 10 04:06:52 2019
+++ src/sys/net/rtsock_shared.c Mon Apr 29 05:42:09 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: rtsock_shared.c,v 1.5 2019/04/10 04:06:52 thorpej Exp $ */
+/* $NetBSD: rtsock_shared.c,v 1.6 2019/04/29 05:42:09 pgoyette Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtsock_shared.c,v 1.5 2019/04/10 04:06:52 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtsock_shared.c,v 1.6 2019/04/29 05:42:09 pgoyette Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -1618,7 +1618,7 @@ COMPATNAME(route_init)(void)
#endif
#ifndef COMPAT_RTSOCK
- sysctl_net_route_setup(NULL);
+ sysctl_net_route_setup(NULL, PF_ROUTE, "rtable");
#endif
ri->ri_intrq.ifq_maxlen = ri->ri_maxqlen;
ri->ri_sih = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,