projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rewrite resolv.conf after any interface state change (not just up)
[project/netifd.git]
/
interface-ip.c
diff --git
a/interface-ip.c
b/interface-ip.c
index
fa84fc7
..
f62d670
100644
(file)
--- a/
interface-ip.c
+++ b/
interface-ip.c
@@
-270,6
+270,7
@@
interface_handle_subnet_route(struct interface *iface, struct device_addr *addr,
struct device *dev = iface->l3_dev.dev;
struct device_route route;
struct device *dev = iface->l3_dev.dev;
struct device_route route;
+ memset(&route, 0, sizeof(route));
route.iface = iface;
route.flags = addr->flags;
route.mask = addr->mask;
route.iface = iface;
route.flags = addr->flags;
route.mask = addr->mask;
@@
-429,6
+430,9
@@
interface_add_dns_server(struct interface_ip_settings *ip, const char *str)
struct dns_server *s;
s = calloc(1, sizeof(*s));
struct dns_server *s;
s = calloc(1, sizeof(*s));
+ if (!s)
+ return;
+
s->af = AF_INET;
if (inet_pton(s->af, str, &s->addr.in))
goto add;
s->af = AF_INET;
if (inet_pton(s->af, str, &s->addr.in))
goto add;
@@
-613,6
+617,7
@@
interface_ip_update_complete(struct interface_ip_settings *ip)
vlist_simple_flush(&ip->dns_search);
vlist_flush(&ip->route);
vlist_flush(&ip->addr);
vlist_simple_flush(&ip->dns_search);
vlist_flush(&ip->route);
vlist_flush(&ip->addr);
+ interface_write_resolv_conf();
}
void
}
void