2010-08-26 07:10:40 +08:00
|
|
|
--- a/pppd/sys-linux.c
|
|
|
|
+++ b/pppd/sys-linux.c
|
2011-07-29 00:51:12 +08:00
|
|
|
@@ -1697,6 +1697,9 @@ int sifdefaultroute (int unit, u_int32_t
|
2010-08-26 07:10:40 +08:00
|
|
|
memset (&rt, 0, sizeof (rt));
|
|
|
|
SET_SA_FAMILY (rt.rt_dst, AF_INET);
|
|
|
|
|
|
|
|
+ SET_SA_FAMILY(rt.rt_gateway, AF_INET);
|
|
|
|
+ SIN_ADDR(rt.rt_gateway) = gateway;
|
|
|
|
+
|
|
|
|
rt.rt_dev = ifname;
|
|
|
|
|
|
|
|
if (kernel_version > KVERSION(2,1,0)) {
|
2011-07-29 00:51:12 +08:00
|
|
|
@@ -1704,7 +1707,7 @@ int sifdefaultroute (int unit, u_int32_t
|
2010-08-26 07:10:40 +08:00
|
|
|
SIN_ADDR(rt.rt_genmask) = 0L;
|
|
|
|
}
|
|
|
|
|
|
|
|
- rt.rt_flags = RTF_UP;
|
|
|
|
+ rt.rt_flags = RTF_UP | RTF_GATEWAY;
|
|
|
|
if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {
|
|
|
|
if (!ok_error(errno))
|
|
|
|
error("default route ioctl(SIOCADDRT): %m");
|