summaryrefslogtreecommitdiff
path: root/src/udev/net
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-08-08 12:12:17 +0200
committerTom Gundersen <teg@jklm.no>2014-08-12 20:42:59 +0200
commit3c9b886068d99e5d3cbabcac32a4decf37244c54 (patch)
tree202a4ad46576204b03c45d49f4696ebd6c54a4f6 /src/udev/net
parent68ba38770640413b4fa06773447666eb88a38d4c (diff)
networkd: link - split out dhcp4 handling
Diffstat (limited to 'src/udev/net')
-rw-r--r--src/udev/net/link-config.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
index 4ff20e6d10..e2280f1f6b 100644
--- a/src/udev/net/link-config.c
+++ b/src/udev/net/link-config.c
@@ -279,9 +279,11 @@ static bool mac_is_random(struct udev_device *device) {
unsigned type;
int r;
+ /* if we can't get the assign type, assume it is not random */
s = udev_device_get_sysattr_value(device, "addr_assign_type");
if (!s)
- return false; /* if we don't know, assume it is not random */
+ return false;
+
r = safe_atou(s, &type);
if (r < 0)
return false;
@@ -294,9 +296,11 @@ static bool should_rename(struct udev_device *device, bool respect_predictable)
unsigned type;
int r;
+ /* if we can't get the assgin type, assume we should rename */
s = udev_device_get_sysattr_value(device, "name_assign_type");
if (!s)
- return true; /* if we don't know, assume we should rename */
+ return true;
+
r = safe_atou(s, &type);
if (r < 0)
return true;
@@ -304,14 +308,17 @@ static bool should_rename(struct udev_device *device, bool respect_predictable)
switch (type) {
case NET_NAME_USER:
case NET_NAME_RENAMED:
- return false; /* these were already named by userspace, do not touch again */
+ /* these were already named by userspace, do not touch again */
+ return false;
case NET_NAME_PREDICTABLE:
+ /* the kernel claims to have given a predictable name */
if (respect_predictable)
- return false; /* the kernel claims to have given a predictable name */
+ return false;
/* fall through */
case NET_NAME_ENUM:
default:
- return true; /* the name is known to be bad, or of an unknown type */
+ /* the name is known to be bad, or of an unknown type */
+ return true;
}
}
@@ -333,8 +340,8 @@ static int get_mac(struct udev_device *device, bool want_random,
}
/* see eth_random_addr in the kernel */
- mac->ether_addr_octet[0] &= 0xfe; /* clear multicast bit */
- mac->ether_addr_octet[0] |= 0x02; /* set local assignment bit (IEEE802) */
+ mac->ether_addr_octet[0] &= 0xfe; /* clear multicast bit */
+ mac->ether_addr_octet[0] |= 0x02; /* set local assignment bit (IEEE802) */
return 0;
}
@@ -410,8 +417,8 @@ int link_config_apply(link_config_ctx *ctx, link_config *config,
}
if (should_rename(device, respect_predictable)) {
+ /* if not set by policy, fall back manually set name */
if (!new_name)
- /* if not set by policy, fall back manually set name */
new_name = config->name;
} else
new_name = NULL;