Справочник по консольным командам Toybox для Android 12


  Ver.0.8.4     Ver.0.8.9     Pending  

Путь: Toys/Net, команды версии: Ver.4     Ver.9


tunctl

Комментарии в файле tunctl.c :

usage: tunctl [-dtT] [-u USER] NAME

Создавайте и удаляйте виртуальные сетевые устройства tun/tap.
  • -T Использовать tap (фреймы Ethernet) вместо tun (ip-пакеты)
  • -d Удалить устройство tun/tap
  • -t Создать устройство tun/tap
  • -u Установить владельца (пользователя, который может читать/записывать устройство без root-доступа)

  • usage: tunctl [-dtT] [-u USER] NAME

    Create and delete tun/tap virtual ethernet devices.
  • -T Use tap (ethernet frames) instead of tun (ip packets)
  • -d Delete tun/tap device
  • -t Create tun/tap device
  • -u Set owner (user who can read/write device without root access)

  • Исходный текст в файле 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);
    }


    Реклама от Adnitro