Imported Upstream version 0.3.3
[anytun.git] / src / tunDevice.h
index f37016d..8b400a9 100644 (file)
  *  tunneling and relaying of packets of any protocol.
  *
  *
- *  Copyright (C) 2007-2008 Othmar Gsenger, Erwin Nindl, 
+ *  Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, 
  *                          Christian Pointner <satp@wirdorange.org>
  *
  *  This file is part of Anytun.
  *
  *  Anytun is free software: you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 3 as
- *  published by the Free Software Foundation.
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  any later version.
  *
  *  Anytun is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  along with anytun.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef _TUNDEVICE_H_
-#define _TUNDEVICE_H_
+#ifndef ANYTUN_tunDevice_h_INCLUDED
+#define ANYTUN_tunDevice_h_INCLUDED
 
 #include "buffer.h"
 #include "deviceConfig.hpp"
 #include "threadUtils.hpp"
-
 #ifdef _MSC_VER
 #include <windows.h>
+#else
+#include "sysExec.h"
 #endif
 
 class TunDevice
@@ -52,6 +54,7 @@ public:
   const char* getActualName() const { return actual_name_.c_str(); }
   const char* getActualNode() const { return actual_node_.c_str(); }
   device_type_t getType() const { return conf_.type_; } 
+  void waitUntilReady();
   const char* getTypeString() const
   {
 #ifndef _MSC_VER
@@ -70,7 +73,6 @@ public:
     return "";
   }
 
-
 private:
   void operator=(const TunDevice &src);
   TunDevice(const TunDevice &src);
@@ -90,6 +92,9 @@ private:
 #endif
 
   DeviceConfig conf_;
+#ifndef _MSC_VER
+  SysExec * sys_exec_;
+#endif
   bool with_pi_;
   std::string actual_name_;
   std::string actual_node_;