aboutsummaryrefslogtreecommitdiffstats
path: root/pingu_iface.c
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-09-09 14:20:40 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2011-09-09 14:20:40 +0200
commit50d9faf2d2c5ddcf9a0bd6591d73d4e45d09641b (patch)
tree763cdcff2760d882633dc4f2b2e54cd023ae7f94 /pingu_iface.c
parentf8ea0da3d82ec64ac88a33631ca259a091111a41 (diff)
downloadpingu-50d9faf2d2c5ddcf9a0bd6591d73d4e45d09641b.tar.bz2
pingu-50d9faf2d2c5ddcf9a0bd6591d73d4e45d09641b.tar.xz
pingu_netlink: delete multipath route if there are no paths
The normal action is to replace but if all ISPs goes down we need to explicit delete the multipath route. Otherwise we will have the last default gw hanging around.
Diffstat (limited to 'pingu_iface.c')
-rw-r--r--pingu_iface.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/pingu_iface.c b/pingu_iface.c
index 9f63587..c7388b0 100644
--- a/pingu_iface.c
+++ b/pingu_iface.c
@@ -163,7 +163,7 @@ void pingu_iface_gw_action(struct pingu_iface *iface,
break;
}
if (is_default_gw(gw))
- kernel_route_multipath(action, &iface_list, RT_TABLE_MAIN);
+ kernel_route_multipath(RTM_NEWROUTE, &iface_list, RT_TABLE_MAIN);
}
void pingu_iface_update_routes(struct pingu_iface *iface, int action)
@@ -173,7 +173,7 @@ void pingu_iface_update_routes(struct pingu_iface *iface, int action)
if (is_default_gw(route) && iface->has_address)
kernel_route_modify(action, route, iface, RT_TABLE_MAIN);
}
- kernel_route_multipath(action, &iface_list, RT_TABLE_MAIN);
+ kernel_route_multipath(RTM_NEWROUTE, &iface_list, RT_TABLE_MAIN);
}
int pingu_iface_set_route_table(struct pingu_iface *iface, int table)