mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-16 14:51:32 +00:00
utils: add lxc_nic_exists()
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
parent
3231134523
commit
d75c14e262
@ -397,26 +397,6 @@ static char *find_line(char *p, char *e, char *u, char *t, char *l)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool nic_exists(char *nic)
|
|
||||||
{
|
|
||||||
char path[MAXPATHLEN];
|
|
||||||
int ret;
|
|
||||||
struct stat sb;
|
|
||||||
|
|
||||||
if (!strcmp(nic, "none"))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
ret = snprintf(path, MAXPATHLEN, "/sys/class/net/%s", nic);
|
|
||||||
if (ret < 0 || (size_t)ret >= MAXPATHLEN)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
ret = stat(path, &sb);
|
|
||||||
if (ret < 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int instantiate_veth(char *n1, char **n2)
|
static int instantiate_veth(char *n1, char **n2)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
@ -625,7 +605,7 @@ static bool cull_entries(int fd, char *me, char *t, char *br, char *nicname,
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (nic[0] != '\0')
|
if (nic[0] != '\0')
|
||||||
exists = nic_exists(nic);
|
exists = lxc_nic_exists(nic);
|
||||||
|
|
||||||
if (!exists)
|
if (!exists)
|
||||||
entry_lines[n - 1].keep = false;
|
entry_lines[n - 1].keep = false;
|
||||||
|
@ -2409,3 +2409,24 @@ bool has_fs_type(const char *path, fs_type_magic magic_val)
|
|||||||
|
|
||||||
return has_type;
|
return has_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool lxc_nic_exists(char *nic)
|
||||||
|
{
|
||||||
|
#define __LXC_SYS_CLASS_NET_LEN 15 + IFNAMSIZ + 1
|
||||||
|
char path[__LXC_SYS_CLASS_NET_LEN];
|
||||||
|
int ret;
|
||||||
|
struct stat sb;
|
||||||
|
|
||||||
|
if (!strcmp(nic, "none"))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
ret = snprintf(path, __LXC_SYS_CLASS_NET_LEN, "/sys/class/net/%s", nic);
|
||||||
|
if (ret < 0 || (size_t)ret >= __LXC_SYS_CLASS_NET_LEN)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ret = stat(path, &sb);
|
||||||
|
if (ret < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
@ -402,5 +402,6 @@ extern void *must_realloc(void *orig, size_t sz);
|
|||||||
typedef __typeof__(((struct statfs *)NULL)->f_type) fs_type_magic;
|
typedef __typeof__(((struct statfs *)NULL)->f_type) fs_type_magic;
|
||||||
extern bool has_fs_type(const char *path, fs_type_magic magic_val);
|
extern bool has_fs_type(const char *path, fs_type_magic magic_val);
|
||||||
extern bool is_fs_type(const struct statfs *fs, fs_type_magic magic_val);
|
extern bool is_fs_type(const struct statfs *fs, fs_type_magic magic_val);
|
||||||
|
extern bool lxc_nic_exists(char *nic);
|
||||||
|
|
||||||
#endif /* __LXC_UTILS_H */
|
#endif /* __LXC_UTILS_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user