You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
735 B
22 lines
735 B
pppd: Retain foreign default routes on Linux
|
|
|
|
On Linux, when pppd attempts to delete its default route it does not fill
|
|
the rt_dev field of the struct rtentry used to match the system default route.
|
|
As a consequence, pppd happily deletes any default route even if it belongs
|
|
to another interface.
|
|
|
|
This patch makes pppd fill out the rt_dev field so that only own default
|
|
routes are ever matched.
|
|
|
|
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
|
|
|
|
--- a/pppd/sys-linux.c
|
|
+++ b/pppd/sys-linux.c
|
|
@@ -1756,6 +1756,7 @@ int cifdefaultroute (int unit, u_int32_t
|
|
SIN_ADDR(rt.rt_genmask) = 0L;
|
|
}
|
|
|
|
+ rt.rt_dev = ifname;
|
|
rt.rt_flags = RTF_UP;
|
|
if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {
|
|
if (still_ppp()) {
|
|
|