if (ret < 0 || (size_t)ret >= sizeof(nicname))
return NULL;
- if (!lxc_mkifname(nicname))
+ if (!lxc_ifname_alnum_case_sensitive(nicname))
return NULL;
ret = create_nic(nicname, br, pid, cnic);
if (netdev->priv.veth_attr.pair[0] == '\0' &&
netdev->priv.veth_attr.veth1[0] == '\0') {
- if (!lxc_mkifname(template))
+ if (!lxc_ifname_alnum_case_sensitive(template))
goto out_unlock;
(void)strlcpy(netdev->priv.veth_attr.veth1, template, IFNAMSIZ);
if (err < 0 || (size_t)err >= sizeof(veth1buf))
return -1;
- veth1 = lxc_mkifname(veth1buf);
+ veth1 = lxc_ifname_alnum_case_sensitive(veth1buf);
if (!veth1)
return -1;
if (err < 0 || (size_t)err >= sizeof(veth2buf))
return -1;
- veth2 = lxc_mkifname(veth2buf);
+ veth2 = lxc_ifname_alnum_case_sensitive(veth2buf);
if (!veth2)
return -1;
if (err < 0 || (size_t)err >= sizeof(peer))
return -1;
- if (!lxc_mkifname(peer))
+ if (!lxc_ifname_alnum_case_sensitive(peer))
return -1;
err = lxc_macvlan_create(netdev->link, peer,
if (err < 0 || (size_t)err >= sizeof(peer))
return -1;
- if (!lxc_mkifname(peer))
+ if (!lxc_ifname_alnum_case_sensitive(peer))
return -1;
err = lxc_ipvlan_create(netdev->link, peer, netdev->priv.ipvlan_attr.mode,
return lxc_network_types[type];
}
-static const char padchar[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+static const char padchar[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
-char *lxc_mkifname(char *template)
+char *lxc_ifname_alnum_case_sensitive(char *template)
{
int ret;
struct netns_ifaddrs *ifa, *ifaddr;
/* Disable IP forwarding. */
extern int lxc_ip_forwarding_off(const char *name, int family);
-/* Generate a new unique network interface name.
- * Allocated memory must be freed by caller.
+/*
+ * Generate a new unique network interface name.
+ *
+ * Allows for 62^n unique combinations.
*/
-extern char *lxc_mkifname(char *template);
+extern char *lxc_ifname_alnum_case_sensitive(char *template);
extern const char *lxc_net_type_to_str(int type);
extern int setup_private_host_hw_addr(char *veth1);