X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fconnection.c;h=293b9111585899d168b57b37f3d03b30ea53d8b5;hb=5c9331bc481ce5a3c438158020d40a41ec9b9c8e;hp=3b67b9219367f250ed04973860005b5839acda82;hpb=55e3005fcd96479b0512d6e4954de05cdd55b7ce;p=connman diff --git a/src/connection.c b/src/connection.c index 3b67b92..293b911 100644 --- a/src/connection.c +++ b/src/connection.c @@ -98,6 +98,28 @@ static int set_route(struct connman_element *element, const char *gateway) DBG("ifname %s", ifr.ifr_name); memset(&rt, 0, sizeof(rt)); + rt.rt_flags = RTF_UP | RTF_HOST; + + addr = (struct sockaddr_in *) &rt.rt_dst; + addr->sin_family = AF_INET; + addr->sin_addr.s_addr = inet_addr(gateway); + + addr = (struct sockaddr_in *) &rt.rt_gateway; + addr->sin_family = AF_INET; + addr->sin_addr.s_addr = INADDR_ANY; + + addr = (struct sockaddr_in *) &rt.rt_genmask; + addr->sin_family = AF_INET; + addr->sin_addr.s_addr = INADDR_ANY; + + rt.rt_dev = ifr.ifr_name; + + err = ioctl(sk, SIOCADDRT, &rt); + if (err < 0) + connman_error("Setting host gateway route failed (%s)", + strerror(errno)); + + memset(&rt, 0, sizeof(rt)); rt.rt_flags = RTF_UP | RTF_GATEWAY; addr = (struct sockaddr_in *) &rt.rt_dst;