chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
backlight: Avoid restoring brightness to an unreadably dim level
[elogind.git]
/
src
/
network
/
networkd-address.c
diff --git
a/src/network/networkd-address.c
b/src/network/networkd-address.c
index 560605408f30553996171a79eec3a7d6d4ac7c78..c92418967b48ec5185d878b4631e9fb65083f6da 100644
(file)
--- a/
src/network/networkd-address.c
+++ b/
src/network/networkd-address.c
@@
-47,6
+47,7
@@
int address_new_static(Network *network, unsigned section, Address **ret) {
return -ENOMEM;
address->family = AF_UNSPEC;
return -ENOMEM;
address->family = AF_UNSPEC;
+ address->scope = RT_SCOPE_UNIVERSE;
address->network = network;
address->network = network;
@@
-71,6
+72,7
@@
int address_new_dynamic(Address **ret) {
return -ENOMEM;
address->family = AF_UNSPEC;
return -ENOMEM;
address->family = AF_UNSPEC;
+ address->scope = RT_SCOPE_UNIVERSE;
*ret = address;
address = NULL;
*ret = address;
address = NULL;
@@
-105,8
+107,8
@@
int address_drop(Address *address, Link *link,
assert(link->manager);
assert(link->manager->rtnl);
assert(link->manager);
assert(link->manager->rtnl);
- r = sd_rtnl_message_new_addr(link->manager->rtnl, RTM_DELADDR,
- link->ifindex, address->family
, &req
);
+ r = sd_rtnl_message_new_addr(link->manager->rtnl,
&req,
RTM_DELADDR,
+ link->ifindex, address->family);
if (r < 0) {
log_error("Could not allocate RTM_DELADDR message: %s",
strerror(-r));
if (r < 0) {
log_error("Could not allocate RTM_DELADDR message: %s",
strerror(-r));
@@
-150,8
+152,8
@@
int address_configure(Address *address, Link *link,
assert(link->manager);
assert(link->manager->rtnl);
assert(link->manager);
assert(link->manager->rtnl);
- r = sd_rtnl_message_new_addr(link->manager->rtnl, RTM_NEWADDR,
- link->ifindex, address->family
, &req
);
+ r = sd_rtnl_message_new_addr(link->manager->rtnl,
&req,
RTM_NEWADDR,
+ link->ifindex, address->family);
if (r < 0) {
log_error("Could not allocate RTM_NEWADDR message: %s",
strerror(-r));
if (r < 0) {
log_error("Could not allocate RTM_NEWADDR message: %s",
strerror(-r));
@@
-170,7
+172,7
@@
int address_configure(Address *address, Link *link,
return r;
}
return r;
}
- r = sd_rtnl_message_addr_set_scope(req,
RT_SCOPE_UNIVERSE
);
+ r = sd_rtnl_message_addr_set_scope(req,
address->scope
);
if (r < 0) {
log_error("Could not set scope: %s", strerror(-r));
return r;
if (r < 0) {
log_error("Could not set scope: %s", strerror(-r));
return r;
@@
-275,6
+277,13
@@
int config_parse_broadcast(const char *unit,
if (r < 0)
return r;
if (r < 0)
return r;
+ if (n->family == AF_INET6) {
+ log_syntax(unit, LOG_ERR, filename, line, EINVAL,
+ "Broadcast is not valid for IPv6 addresses, "
+ "ignoring assignment: %s", address);
+ return 0;
+ }
+
r = net_parse_inaddr(address, &n->family, &n->broadcast);
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, EINVAL,
r = net_parse_inaddr(address, &n->family, &n->broadcast);
if (r < 0) {
log_syntax(unit, LOG_ERR, filename, line, EINVAL,