chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
09bee74
)
networkd: link - serialize DNS information
author
Tom Gundersen
<teg@jklm.no>
Sun, 18 May 2014 20:04:14 +0000
(22:04 +0200)
committer
Tom Gundersen
<teg@jklm.no>
Mon, 19 May 2014 16:14:56 +0000
(18:14 +0200)
src/network/networkd-link.c
patch
|
blob
|
history
diff --git
a/src/network/networkd-link.c
b/src/network/networkd-link.c
index 87a8d9f4ca02374f00150818c8b793121d5bd669..8ce2dbd39c17ca3953e56a2baa2449a9d4548ed2 100644
(file)
--- a/
src/network/networkd-link.c
+++ b/
src/network/networkd-link.c
@@
-1976,6
+1976,27
@@
int link_update(Link *link, sd_rtnl_message *m) {
return link_update_flags(link, m);
}
return link_update_flags(link, m);
}
+static void serialize_addresses(FILE *f, const char *key, Address *address) {
+ Address *ad;
+
+ assert(f);
+ assert(key);
+
+ if (!address)
+ return;
+
+ fprintf(f, "%s=", key);
+
+ LIST_FOREACH(addresses, ad, address) {
+ char buf[INET6_ADDRSTRLEN];
+
+ if (inet_ntop(address->family, &address->in_addr, buf, INET6_ADDRSTRLEN))
+ fprintf(f, "%s%s", buf, (ad->addresses_next) ? " ": "");
+ }
+
+ fputs("\n", f);
+}
+
int link_save(Link *link) {
_cleanup_free_ char *temp_path = NULL;
_cleanup_fclose_ FILE *f = NULL;
int link_save(Link *link) {
_cleanup_free_ char *temp_path = NULL;
_cleanup_fclose_ FILE *f = NULL;
@@
-2017,12
+2038,18
@@
int link_save(Link *link) {
"FLAGS=%u\n",
admin_state, oper_state, link->flags);
"FLAGS=%u\n",
admin_state, oper_state, link->flags);
+ if (link->network)
+ serialize_addresses(f, "DNS", link->network->dns);
+
if (link->dhcp_lease) {
r = dhcp_lease_save(link->dhcp_lease, link->lease_file);
if (r < 0)
goto finish;
if (link->dhcp_lease) {
r = dhcp_lease_save(link->dhcp_lease, link->lease_file);
if (r < 0)
goto finish;
- fprintf(f, "DHCP_LEASE=%s\n", link->lease_file);
+ fprintf(f,
+ "DHCP_LEASE=%s\n"
+ "DHCP_USE_DNS=%s\n",
+ link->lease_file, yes_no(link->network->dhcp_dns));
} else
unlink(link->lease_file);
} else
unlink(link->lease_file);