diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2010-01-08 10:47:26 -0800 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2010-01-08 10:47:26 -0800 |
commit | 938bc384f44031877543765a9ae18c764f5da9c8 (patch) | |
tree | 3c5d3e2749b7b1bef613a1283373d61945db7421 /configure.c | |
parent | b22386a3de85d94030c7071760f4a5e3368bfbe5 (diff) | |
download | external_dhcpcd-938bc384f44031877543765a9ae18c764f5da9c8.zip external_dhcpcd-938bc384f44031877543765a9ae18c764f5da9c8.tar.gz external_dhcpcd-938bc384f44031877543765a9ae18c764f5da9c8.tar.bz2 |
dhcpcd: Upgrade from 4.0.1 to 4.0.15
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'configure.c')
-rw-r--r-- | configure.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/configure.c b/configure.c index dad3bce..1e6daeb 100644 --- a/configure.c +++ b/configure.c @@ -181,7 +181,7 @@ reverse_routes(struct rt *routes) } static int -delete_route(const char *iface, struct rt *rt, int metric) +delete_route(const struct interface *iface, struct rt *rt, int metric) { char *addr; int retval; @@ -206,7 +206,7 @@ delete_routes(struct interface *iface, int metric) rt = reverse_routes(iface->routes); while (rt) { rtn = rt->next; - retval += delete_route(iface->name, rt, metric); + retval += delete_route(iface, rt, metric); free(rt); rt = rtn; } @@ -272,7 +272,7 @@ configure_routes(struct interface *iface, const struct dhcp_message *dhcp, iface->routes = reverse_routes(iface->routes); for (rt = iface->routes; rt; rt = rt->next) if (in_routes(ort, rt) != 0) - delete_route(iface->name, rt, options->metric); + delete_route(iface, rt, options->metric); for (rt = ort; rt; rt = rt->next) { /* Don't set default routes if not asked to */ @@ -285,7 +285,7 @@ configure_routes(struct interface *iface, const struct dhcp_message *dhcp, logger(LOG_DEBUG, "adding route to %s/%d via %s", addr, inet_ntocidr(rt->net), inet_ntoa(rt->gate)); free(addr); - remember = add_route(iface->name, &rt->dest, + remember = add_route(iface, &rt->dest, &rt->net, &rt->gate, options->metric); retval += remember; @@ -357,9 +357,9 @@ configure(struct interface *iface, const char *reason, if (addr.s_addr == 0) addr.s_addr = lease->addr.s_addr; /* Ensure we have all the needed values */ - if (get_option_addr(&net.s_addr, dhcp, DHO_SUBNETMASK) == -1) + if (get_option_addr(&net, dhcp, DHO_SUBNETMASK) == -1) net.s_addr = get_netmask(addr.s_addr); - if (get_option_addr(&brd.s_addr, dhcp, DHO_BROADCAST) == -1) + if (get_option_addr(&brd, dhcp, DHO_BROADCAST) == -1) brd.s_addr = addr.s_addr | ~net.s_addr; } @@ -400,21 +400,17 @@ configure(struct interface *iface, const char *reason, { dest.s_addr = addr.s_addr & net.s_addr; gate.s_addr = 0; - add_route(iface->name, &dest, &net, &gate, options->metric); - del_route(iface->name, &dest, &net, &gate, 0); + add_route(iface, &dest, &net, &gate, options->metric); + del_route(iface, &dest, &net, &gate, 0); } #endif - configure_routes(iface, dhcp, options); - up = (iface->addr.s_addr != addr.s_addr || - iface->net.s_addr != net.s_addr); iface->addr.s_addr = addr.s_addr; iface->net.s_addr = net.s_addr; - + configure_routes(iface, dhcp, options); if (!lease->frominfo) if (write_lease(iface, dhcp) == -1) logger(LOG_ERR, "write_lease: %s", strerror(errno)); - run_script(options, iface->name, reason, dhcp, old); return 0; } |