Bladeren bron

new option --persist-tun

wangyu- 7 jaren geleden
bovenliggende
commit
e2ae62630b
1 gewijzigde bestanden met toevoegingen van 7 en 2 verwijderingen
  1. 7 2
      tun_dev.cpp

+ 7 - 2
tun_dev.cpp

@@ -30,12 +30,18 @@ int get_tun_fd(char * dev_name)
 		mylog(log_fatal,"open /dev/net/tun failed");
 		myexit(-1);
 	}
+
+	if (persist_tun == 1) {
+		if (ioctl(tun_fd, TUNSETPERSIST, 1) != 0) {
+			mylog(log_warn,"failed to set tun persistent");
+		}
+	}
 	return tun_fd;
 }
 
 int set_tun(char *if_name,u32_t local_ip,u32_t remote_ip,int mtu)
 {
-	if(manual_tun) return 0;
+	if(manual_set_tun) return 0;
 
 	//printf("i m here1\n");
 	struct ifreq ifr;
@@ -60,7 +66,6 @@ int set_tun(char *if_name,u32_t local_ip,u32_t remote_ip,int mtu)
     ifr.ifr_mtu=mtu;
     assert(ioctl(sockfd, SIOCSIFMTU, &ifr)==0);//set mtu
 
-
     assert(ioctl(sockfd, SIOCGIFFLAGS, &ifr)==0);
    // ifr.ifr_flags |= ( IFF_UP|IFF_POINTOPOINT|IFF_RUNNING|IFF_NOARP|IFF_MULTICAST );
     ifr.ifr_flags = ( IFF_UP|IFF_POINTOPOINT|IFF_RUNNING|IFF_NOARP|IFF_MULTICAST );//set interface flags