*/
if (*(slide + strspn(slide, " \t\r\n")) != '\0')
goto on_error;
+
/* Mark end of range. */
*slide = '\0';
lxc_list_add_tail(networks, newlist);
else
lxc_list_add(networks, newlist);
+
return netdev;
}
TRACE("index: %zd", netdev->idx);
TRACE("ifindex: %d", netdev->ifindex);
+
switch (netdev->type) {
case LXC_NET_VETH:
TRACE("type: veth");
+
if (netdev->priv.veth_attr.pair[0] != '\0')
TRACE("veth pair: %s",
netdev->priv.veth_attr.pair);
+
if (netdev->priv.veth_attr.veth1[0] != '\0')
TRACE("veth1 : %s",
netdev->priv.veth_attr.veth1);
+
if (netdev->priv.veth_attr.ifindex > 0)
TRACE("host side ifindex for veth device: %d",
netdev->priv.veth_attr.ifindex);
break;
case LXC_NET_MACVLAN:
TRACE("type: macvlan");
+
if (netdev->priv.macvlan_attr.mode > 0) {
char *macvlan_mode;
+
macvlan_mode = lxc_macvlan_flag_to_mode(
netdev->priv.macvlan_attr.mode);
TRACE("macvlan mode: %s",
break;
case LXC_NET_PHYS:
TRACE("type: phys");
- if (netdev->priv.phys_attr.ifindex > 0) {
+
+ if (netdev->priv.phys_attr.ifindex > 0)
TRACE("host side ifindex for phys device: %d",
netdev->priv.phys_attr.ifindex);
- }
break;
case LXC_NET_EMPTY:
TRACE("type: empty");
if (netdev->type != LXC_NET_EMPTY) {
TRACE("flags: %s",
netdev->flags == IFF_UP ? "up" : "none");
+
if (netdev->link[0] != '\0')
TRACE("link: %s", netdev->link);
+
if (netdev->name[0] != '\0')
TRACE("name: %s", netdev->name);
+
if (netdev->hwaddr)
TRACE("hwaddr: %s", netdev->hwaddr);
+
if (netdev->mtu)
TRACE("mtu: %s", netdev->mtu);
+
if (netdev->upscript)
TRACE("upscript: %s", netdev->upscript);
+
if (netdev->downscript)
TRACE("downscript: %s", netdev->downscript);
TRACE("ipv6 gateway auto: %s",
netdev->ipv6_gateway_auto ? "true" : "false");
+
if (netdev->ipv6_gateway) {
inet_ntop(AF_INET6, netdev->ipv6_gateway,
bufinet6, sizeof(bufinet6));
TRACE("ipv6 gateway: %s", bufinet6);
}
+
lxc_list_for_each_safe(cur, &netdev->ipv6, next) {
inet6dev = cur->elem;
inet_ntop(AF_INET6, &inet6dev->addr, bufinet6,
new_value = strdup(value);
if (!new_value) {
- SYSERROR("failed to duplicate string \"%s\"", value);
+ SYSERROR("Failed to duplicate string \"%s\"", value);
return -1;
}
{
if (IN_CLASSA(addr->s_addr))
return 32 - IN_CLASSA_NSHIFT;
+
if (IN_CLASSB(addr->s_addr))
return 32 - IN_CLASSB_NSHIFT;
+
if (IN_CLASSC(addr->s_addr))
return 32 - IN_CLASSC_NSHIFT;
return -1;
retlen = strlcpy(valuep, value, size);
- if (retlen >= size) {
+ if (retlen >= size)
ERROR("Network devie name \"%s\" is too long (>= %zu)", value,
size);
- }
return 0;
}
-int rand_complete_hwaddr(char *hwaddr)
+void rand_complete_hwaddr(char *hwaddr)
{
const char hex[] = "0123456789abcdef";
char *curs = hwaddr;
}
curs++;
}
- return 0;
}
bool lxc_config_net_hwaddr(const char *line)
if (strncmp(line, "lxc.net", 7) != 0)
return false;
+
if (strncmp(line, "lxc.net.hwaddr", 14) == 0)
return true;
+
if (strncmp(line, "lxc.network.hwaddr", 18) == 0)
return true;
- if (sscanf(line, "lxc.net.%u.%6s", &index, tmp) == 2 || sscanf(line, "lxc.network.%u.%6s", &index, tmp) == 2)
+
+ if (sscanf(line, "lxc.net.%u.%6s", &index, tmp) == 2 ||
+ sscanf(line, "lxc.network.%u.%6s", &index, tmp) == 2)
return strncmp(tmp, "hwaddr", 6) == 0;
return false;
if (retv && inlen >= value_len + 1)
memcpy(retv, value, value_len + 1);
- return strlen(value);
+ return value_len;
}
int lxc_get_conf_int(struct lxc_conf *c, char *retv, int inlen, int v)
*res = strtoull(*value, &endptr, 10);
if (errno || !endptr)
return false;
+
*value = endptr;
return true;
ret = kill(pid, 0);
if (ret < 0) {
SYSERROR("Failed to send signal to pid %d", (int)pid);
- return -EPERM;
+ return -1;
}
return pid;
if (lastslash) {
dup = strdup(lxcname_or_pid);
if (!dup)
- return -ENOMEM;
+ return -1;
dup[lastslash - lxcname_or_pid] = '\0';
pid = lxc_container_name_to_pid(lastslash + 1, dup);
}
if (pid < 0)
- return -EINVAL;
+ return -1;
fd = lxc_preserve_ns(pid, namespace);
if (fd < 0)
- return -EINVAL;
+ return -1;
return fd;
}
{
int rtmax = 0, sig_n = 0;
- if (strncasecmp(signame, "max-", 4) == 0) {
+ if (strncasecmp(signame, "max-", 4) == 0)
rtmax = 1;
- }
signame += 4;
if (!isdigit(*signame))
signame += 3;
if (strncasecmp(signame, "rt", 2) == 0)
return rt_sig_num(signame + 2);
- for (n = 0; n < sizeof(signames) / sizeof((signames)[0]); n++) {
+
+ for (n = 0; n < sizeof(signames) / sizeof((signames)[0]); n++)
if (strcasecmp(signames[n].name, signame) == 0)
return signames[n].num;
- }
}
return -1;