net-util.c revision d2df0d0ed3a88e491405b403e6022e6619750130
cac0964f155bdb6daba7ecf5628ed2fec3763275orlikowski/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
7e27b1d417fa94db6e8c798a36c68de3a22f3937ianh This file is part of systemd.
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb Copyright (C) 2013 Tom Gundersen <teg@jklm.no>
87a87c1e1afc7eb004bc10594a9de98411866a20jerenkrantz systemd is free software; you can redistribute it and/or modify it
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb under the terms of the GNU Lesser General Public License as published by
1ddf25b77b03f7f4fd7a7676b62755da90cd3e0crbb the Free Software Foundation; either version 2.1 of the License, or
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb (at your option) any later version.
4b34d6a5b70303010612df6c87da3ee91ae86078rbb systemd is distributed in the hope that it will be useful, but
4b34d6a5b70303010612df6c87da3ee91ae86078rbb WITHOUT ANY WARRANTY; without even the implied warranty of
4b34d6a5b70303010612df6c87da3ee91ae86078rbb MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4b34d6a5b70303010612df6c87da3ee91ae86078rbb Lesser General Public License for more details.
d66260b801a953237f71d6a4b26d8fd9ea419e3brbb You should have received a copy of the GNU Lesser General Public License
4b34d6a5b70303010612df6c87da3ee91ae86078rbb along with systemd; If not, see <http://www.gnu.org/licenses/>.
8a3a703eae0e35f674b189181609545c6fc77a09rbbbool net_match_config(const struct ether_addr *match_mac,
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb const char *match_path,
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb const char *match_driver,
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb const char *match_type,
8a3a703eae0e35f674b189181609545c6fc77a09rbb const char *match_name,
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb const char *dev_mac,
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb const char *dev_path,
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb const char *dev_driver,
8a3a703eae0e35f674b189181609545c6fc77a09rbb const char *dev_type,
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb const char *dev_name) {
8a3a703eae0e35f674b189181609545c6fc77a09rbb if (!dev_mac || memcmp(match_mac, ether_aton(dev_mac), ETH_ALEN)) {
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb log_debug("Interface MAC address (%s) did not match MACAddress=%s",
05b7ad99e5d197b06c761fef0e06a44e353cbc54rbb log_debug("Interface persistent path (%s) did not match Path=%s",
bb7f455a6c49400b3dfcb3dfb84f9c3a32947a08rbb log_debug("Interface device driver (%s) did not match Driver=%s",
if (match_type) {
if (match_name) {
const char *filename,
unsigned line,
const char *section,
const char *lvalue,
int ltype,
const char *rvalue,
void *data,
void *userdata) {
char **s = data;
return log_oom();
free(n);
free(*s);
free(n);
*s = NULL;
const char *filename,
unsigned line,
const char *section,
const char *lvalue,
int ltype,
const char *rvalue,
void *data,
void *userdata) {
char **s = data;
return log_oom();
free(n);
free(*s);
free(n);
*s = NULL;
const char *filename,
unsigned line,
const char *section,
const char *lvalue,
int ltype,
const char *rvalue,
void *data,
void *userdata) {
struct ether_addr *n;
return log_oom();
&n->ether_addr_octet[0],
free(n);
*hwaddr = n;
return -errno;
return -errno;
return -EINVAL;