/
githubmirror
/
iproute2
Обзор
Документация
Войти
/
githubmirror
/
iproute2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
include/namespace.h
67 строк
1 KB
Xiao Liang
ip: Move of set_netnsid_from_name() to namespace.c
17 окт 2024, 22:08
17 окт 2024, 22:08
18bbd74
Код
Авторство
О чём код?
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __NAMESPACE_H__ #define __NAMESPACE_H__ 1 #include <sched.h> #include <sys/mount.h> #include <unistd.h> #include <sys/syscall.h> #include <errno.h> #include <libnetlink.h> #ifndef NETNS_RUN_DIR #define NETNS_RUN_DIR "/var/run/netns" #endif #ifndef NETNS_ETC_DIR #define NETNS_ETC_DIR "/etc/netns" #endif #ifndef CLONE_NEWNET #define CLONE_NEWNET 0x40000000 /* New network namespace (lo, device, names sockets, etc) */ #endif #ifndef MNT_DETACH #define MNT_DETACH 0x00000002 /* Just detach from the tree */ #endif /* MNT_DETACH */ /* sys/mount.h may be out too old to have these */ #ifndef MS_REC #define MS_REC 16384 #endif #ifndef MS_SLAVE #define MS_SLAVE (1 << 19) #endif #ifndef MS_SHARED #define MS_SHARED (1 << 20) #endif #ifndef HAVE_SETNS static inline int setns(int fd, int nstype) { #ifdef __NR_setns return syscall(__NR_setns, fd, nstype); #else errno = ENOSYS; return -1; #endif } #endif /* HAVE_SETNS */ int netns_switch(char *netns); int netns_get_fd(const char *netns); int netns_foreach(int (*func)(char *nsname, void *arg), void *arg); struct netns_func { int (*func)(char *nsname, void *arg); void *arg; }; int netns_id_from_name(struct rtnl_handle *rtnl, const char *name); int set_netns_id_from_name(struct rtnl_handle *rtnl, const char *name, int nsid); char *netns_name_from_id(int32_t id); #endif /* __NAMESPACE_H__ */