From: Felix Fietkau Date: Mon, 5 Sep 2011 03:53:07 +0000 (+0200) Subject: free routes and addresses X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=commitdiff_plain;h=409adfc2256d483b43b4cf92025e575212ea3372;hp=818abd9f2f42c36a0f91ff6d29a9a635398216e0 free routes and addresses --- diff --git a/interface-ip.c b/interface-ip.c index 6decaea..b86acb5 100644 --- a/interface-ip.c +++ b/interface-ip.c @@ -34,6 +34,7 @@ void interface_del_address(struct interface *iface, struct device_addr *addr) list_del(&addr->list); system_del_address(iface->l3_iface->dev, addr); + free(addr); } void interface_del_ctx_addr(struct interface *iface, void *ctx) @@ -58,6 +59,8 @@ void interface_del_route(struct interface *iface, struct device_route *route) { list_del(&route->list); system_del_route(iface->l3_iface->dev, route); + if (!route->keep) + free(route); } void interface_del_all_routes(struct interface *iface) diff --git a/interface-ip.h b/interface-ip.h index 2f5cf85..e83e327 100644 --- a/interface-ip.h +++ b/interface-ip.h @@ -31,6 +31,7 @@ struct device_route { void *ctx; enum device_addr_flags flags; + bool keep; unsigned int mask; union if_addr addr;