X-Git-Url: https://git.syn-net.org/debian/?p=anytun.git;a=blobdiff_plain;f=src%2Flinux%2FtunDevice.cpp;h=ee6ac0efdf27a17c86045ba4600bb0b534ef6c8f;hp=57b1c7c5c11fb91f524b653716093eaf76411a66;hb=ece844834d2cecc028ce81ca283f5d441088580e;hpb=bb834fe0ed7a38b724f49b944adb801634eb6194 diff --git a/src/linux/tunDevice.cpp b/src/linux/tunDevice.cpp index 57b1c7c..ee6ac0e 100644 --- a/src/linux/tunDevice.cpp +++ b/src/linux/tunDevice.cpp @@ -50,7 +50,7 @@ #include "anytunError.h" #include "sysExec.h" -TunDevice::TunDevice(std::string dev_name, std::string dev_type, std::string ifcfg_addr, u_int16_t ifcfg_prefix) : conf_(dev_name, dev_type, ifcfg_addr, ifcfg_prefix, 1400) +TunDevice::TunDevice(std::string dev_name, std::string dev_type, std::string ifcfg_addr, u_int16_t ifcfg_prefix) : conf_(dev_name, dev_type, ifcfg_addr, ifcfg_prefix, 1400), sys_exec_(NULL) { struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); @@ -161,5 +161,11 @@ void TunDevice::do_ifconfig() std::ostringstream mtu_ss; mtu_ss << conf_.mtu_; StringVector args = boost::assign::list_of(actual_name_)(conf_.addr_.toString())("netmask")(conf_.netmask_.toString())("mtu")(mtu_ss.str()); - anytun_exec("/sbin/ifconfig", args); + sys_exec_ = new SysExec("/sbin/ifconfig", args); +} + +void TunDevice::waitUntilReady() +{ + if(sys_exec_) + SysExec::waitAndDestroy(sys_exec_); }