diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-05-09 11:59:18 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2018-05-09 11:59:18 +0900 |
commit | e90d037411a1ef03196daf0bc97005776ae46aeb (patch) | |
tree | dfae495d427d5046211e27e2b4d01334343e90b2 /src/libsystemd-network | |
parent | a7533e3e483cd922d6c6314c395be38666884b21 (diff) | |
download | systemd-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.c | 8 | ||||
-rw-r--r-- | src/libsystemd-network/network-internal.h | 2 |
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, |