Address *address;
assert(network);
+ assert(IN_SET(family, AF_INET, AF_INET6));
+ assert(addr);
address = new(Address, 1);
if (!address)
int r;
assert(context);
+ assert(_kind);
if (!ifname_valid(_ifname))
return -EINVAL;
DHCPType t;
int r;
+ assert(context);
+ assert(ifname);
+ assert(dhcp_type);
+
t = dracut_dhcp_type_from_string(dhcp_type);
if (t < 0)
return t;
static int network_set_hostname(Context *context, const char *ifname, const char *hostname) {
Network *network;
+ assert(context);
+ assert(ifname);
+
network = network_get(context, ifname);
if (!network)
return -ENODEV;
static int network_set_mtu(Context *context, const char *ifname, const char *mtu) {
Network *network;
+ assert(context);
+ assert(ifname);
+
if (isempty(mtu))
return 0;
static int network_set_mac_address(Context *context, const char *ifname, const char *mac) {
Network *network;
+ assert(context);
+ assert(ifname);
+ assert(mac);
+
network = network_get(context, ifname);
if (!network)
return -ENODEV;
union in_addr_union *addr, union in_addr_union *peer) {
Network *network;
+ assert(context);
+ assert(ifname);
+ assert(IN_SET(family, AF_INET, AF_INET6));
+ assert(addr);
+
if (!in_addr_is_set(family, addr))
return 0;
Network *network;
int r;
+ assert(context);
+ assert(ifname);
+ assert(IN_SET(family, AF_INET, AF_INET6));
+
if (!(dest && in_addr_is_set(family, dest)) &&
!(gateway && in_addr_is_set(family, gateway)))
return 0;
Network *network;
int family, r;
+ assert(context);
+ assert(ifname);
+ assert(dns);
+
r = in_addr_from_string_auto(dns, &family, &a);
if (r < 0)
return r;
Network *network;
int r;
+ assert(context);
+ assert(ifname);
+
network = network_get(context, ifname);
if (!network) {
r = network_new(context, ifname, &network);
Network *network;
int r;
+ assert(context);
+ assert(ifname);
+
network = network_get(context, ifname);
if (!network) {
r = network_new(context, ifname, &network);
Network *network;
int r;
+ assert(context);
+ assert(ifname);
+
network = network_get(context, ifname);
if (!network) {
r = network_new(context, ifname, &network);
Network *network;
int r;
+ assert(context);
+ assert(ifname);
+
network = network_get(context, ifname);
if (!network) {
r = network_new(context, ifname, &network);
const char *mtu, *p;
int r;
+ assert(context);
+ assert(ifname);
+ assert(value);
+
/* [<mtu>][:<macaddr>] */
p = strchr(value, ':');
}
static int parse_ip_address_one(int family, const char **value, union in_addr_union *ret) {
- const char *p = *value, *q, *buf;
+ const char *p, *q, *buf;
int r;
+ assert(IN_SET(family, AF_INET, AF_INET6));
+ assert(value);
+ assert(ret);
+
+ p = ASSERT_PTR(*value);
+
if (p[0] == ':') {
*value = p + 1;
return 0;
const char *p, *q;
int r;
+ assert(IN_SET(family, AF_INET, AF_INET6));
+ assert(value);
+ assert(*value);
+ assert(ret);
+
r = parse_ip_address_one(family, value, &netmask);
if (r > 0) {
if (family == AF_INET6)
}
static int parse_ip_dns_address_one(Context *context, const char *ifname, int family, const char **value) {
- const char *p = *value, *q, *buf;
+ const char *p, *q, *buf;
int r;
+ assert(context);
+ assert(ifname);
+ assert(IN_SET(family, AF_INET, AF_INET6));
+ assert(value);
+
+ p = ASSERT_PTR(*value);
+
if (isempty(p))
return 0;
unsigned char prefixlen;
int r;
+ assert(context);
+ assert(IN_SET(family, AF_INET, AF_INET6));
+ assert(value);
+
/* ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|ibft|link6}[:[<mtu>][:<macaddr>]]
* ip=<client-IP>:[<peer>]:<gateway-IP>:<netmask>:<client_hostname>:<interface>:{none|off|dhcp|on|any|dhcp6|auto6|ibft|link6}[:[<dns1>][:<dns2>]] */
const char *ifname, *dhcp_type, *p;
int r;
+ assert(context);
+ assert(value);
+
/* ip=<interface>:{dhcp|on|any|dhcp6|auto6|link6}[:[<mtu>][:<macaddr>]] */
p = strchr(value, ':');
const char *p;
int r;
+ assert(context);
+ assert(key);
+
if (proc_cmdline_value_missing(key, value))
return -EINVAL;
const char *buf, *p;
int family, r;
+ assert(context);
+ assert(key);
+
/* rd.route=<net>/<netmask>:<gateway>[:<interface>] */
if (proc_cmdline_value_missing(key, value))
}
static int parse_cmdline_nameserver(Context *context, const char *key, const char *value) {
+ assert(context);
+ assert(key);
+
if (proc_cmdline_value_missing(key, value))
return -EINVAL;
static int parse_cmdline_rd_peerdns(Context *context, const char *key, const char *value) {
int r;
+ assert(context);
+ assert(key);
+
if (proc_cmdline_value_missing(key, value))
return network_set_dhcp_use_dns(context, "", true);
NetDev *netdev;
int r;
+ assert(context);
+ assert(key);
+
if (proc_cmdline_value_missing(key, value))
return -EINVAL;
NetDev *netdev;
int r;
+ assert(context);
+ assert(key);
+
if (proc_cmdline_value_missing(key, value))
return -EINVAL;
NetDev *netdev;
int r;
+ assert(context);
+ assert(key);
+
if (proc_cmdline_value_missing(key, value))
return -EINVAL;
const char *name, *p;
int r;
+ assert(context);
+ assert(key);
+
/* ifname=<interface>:<MAC> */
if (proc_cmdline_value_missing(key, value))
Link *link;
int r;
+ assert(context);
+ assert(key);
+
/* net.ifname-policy=policy1[,policy2,...][,<MAC>] */
if (proc_cmdline_value_missing(key, value))
}
static int address_dump(Address *address, FILE *f) {
+ assert(address);
+ assert(f);
+
fprintf(f,
"\n[Address]\n"
"Address=%s\n",
}
static int route_dump(Route *route, FILE *f) {
+ assert(route);
+ assert(f);
+
fputs("\n[Route]\n", f);
if (in_addr_is_set(route->family, &route->dest))
fprintf(f, "Destination=%s\n",