summaryrefslogtreecommitdiff
path: root/src/libsystemd-network
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2018-05-09 11:59:18 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2018-05-09 11:59:18 +0900
commite90d037411a1ef03196daf0bc97005776ae46aeb (patch)
treedfae495d427d5046211e27e2b4d01334343e90b2 /src/libsystemd-network
parenta7533e3e483cd922d6c6314c395be38666884b21 (diff)
downloadsystemd-e90d037411a1ef03196daf0bc97005776ae46aeb.tar.gz
network,udev: make MACAddress= in [Match] section take multiple MAC addresses
Diffstat (limited to 'src/libsystemd-network')
-rw-r--r--src/libsystemd-network/network-internal.c8
-rw-r--r--src/libsystemd-network/network-internal.h2
2 files changed, 5 insertions, 5 deletions
diff --git a/src/libsystemd-network/network-internal.c b/src/libsystemd-network/network-internal.c
index 282508875a..7c2bf962d6 100644
--- a/src/libsystemd-network/network-internal.c
+++ b/src/libsystemd-network/network-internal.c
@@ -97,7 +97,7 @@ static bool net_condition_test_strv(char * const *raw_patterns,
return string && strv_fnmatch(raw_patterns, string, 0);
}
-bool net_match_config(const struct ether_addr *match_mac,
+bool net_match_config(Set *match_mac,
char * const *match_paths,
char * const *match_drivers,
char * const *match_types,
@@ -129,7 +129,7 @@ bool net_match_config(const struct ether_addr *match_mac,
if (match_arch && condition_test(match_arch) <= 0)
return false;
- if (match_mac && (!dev_mac || memcmp(match_mac, dev_mac, ETH_ALEN)))
+ if (match_mac && dev_mac && !set_contains(match_mac, dev_mac))
return false;
if (!net_condition_test_strv(match_paths, dev_path))
@@ -329,7 +329,7 @@ int config_parse_hwaddrs(const char *unit,
if (isempty(rvalue)) {
/* Empty assignment resets the list */
- set_free_free(*hwaddrs);
+ *hwaddrs = set_free_free(*hwaddrs);
return 0;
}
@@ -351,7 +351,7 @@ int config_parse_hwaddrs(const char *unit,
return 0;
}
- n = new0(struct ether_addr, 1);
+ n = new(struct ether_addr, 1);
if (!n)
return log_oom();
diff --git a/src/libsystemd-network/network-internal.h b/src/libsystemd-network/network-internal.h
index 5860d63528..c7b659b731 100644
--- a/src/libsystemd-network/network-internal.h
+++ b/src/libsystemd-network/network-internal.h
@@ -18,7 +18,7 @@
#define LINK_BRIDGE_PORT_PRIORITY_INVALID 128
#define LINK_BRIDGE_PORT_PRIORITY_MAX 63
-bool net_match_config(const struct ether_addr *match_mac,
+bool net_match_config(Set *match_mac,
char * const *match_path,
char * const *match_driver,
char * const *match_type,