Преглед изворни кода

Fix setMtu() on Linux. Add error checking (#1860)

* Fix setMtu() on Linux. Add error checking

* Slightly tweak ioctl MTU error message
Joseph Henry пре 2 година
родитељ
комит
e0a3291235
1 измењених фајлова са 4 додато и 1 уклоњено
  1. 4 1
      osdep/LinuxEthernetTap.cpp

+ 4 - 1
osdep/LinuxEthernetTap.cpp

@@ -553,8 +553,11 @@ void LinuxEthernetTap::setMtu(unsigned int mtu)
 		if (sock > 0) {
 			struct ifreq ifr;
 			memset(&ifr,0,sizeof(ifr));
+			strcpy(ifr.ifr_name,_dev.c_str());
 			ifr.ifr_ifru.ifru_mtu = (int)mtu;
-			ioctl(sock,SIOCSIFMTU,(void *)&ifr);
+			if (ioctl(sock,SIOCSIFMTU,(void *)&ifr) < 0) {
+				printf("WARNING: ioctl() failed updating existing Linux tap device (set MTU)\n");
+			}
 			close(sock);
 		}
 	}