
Путь: Toys/Net, команды версии: Ver.4 Ver.9 tunctl Комментарии в файле tunctl.c :
Исходный текст в файле tunctl.c #define FOR_tunctl
#include "toys.h"
#include <linux/if_tun.h>
GLOBALS(
char *u;
)
void tunctl_main(void)
{
struct ifreq *ifr = (void *)toybuf;
uid_t u = TT.u ? xgetuid(TT.u) : 0;
int fd = xopen("/dev/net/tun", O_RDWR);
// Associate filehandle with device
ifr->ifr_flags = ((toys.optflags&FLAG_T) ? IFF_TUN : IFF_TAP)|IFF_NO_PI;
strncpy(ifr->ifr_name, *toys.optargs, sizeof(ifr->ifr_name));
xioctl(fd, TUNSETIFF, toybuf);
if (toys.optflags&FLAG_t) {
xioctl(fd, TUNSETPERSIST, (void *)1);
xioctl(fd, TUNSETOWNER, (void *)(long)u);
} else xioctl(fd, TUNSETPERSIST, (void *)0);
} |
![]() |