@@ -80,6 +80,7 @@ LinuxEthernetTap::LinuxEthernetTap(
_handler(handler),
_arg(arg),
_nwid(nwid),
+ _mac(mac),
_homePath(homePath),
_mtu(mtu),
_fd(0),
@@ -432,7 +433,7 @@ void LinuxEthernetTap::threadMain()
Thread::sleep(500);
ifr.ifr_ifru.ifru_hwaddr.sa_family = ARPHRD_ETHER;
- mac.copyTo(ifr.ifr_ifru.ifru_hwaddr.sa_data,6);
+ _mac.copyTo(ifr.ifr_ifru.ifru_hwaddr.sa_data,6);
if (ioctl(sock,SIOCSIFHWADDR,(void *)&ifr) < 0) {
::close(sock);
printf("WARNING: ioctl() failed setting up Linux tap device (set MAC)\n");
@@ -63,6 +63,7 @@ private:
void (*_handler)(void *,void *,uint64_t,const MAC &,const MAC &,unsigned int,unsigned int,const void *,unsigned int);
void *_arg;
uint64_t _nwid;
+ MAC _mac;
Thread _thread;
std::string _homePath;
std::string _dev;