X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FNetdeviceController.hh;h=6e8c06c87529bbef186ed8e5191255954b7a9543;hb=82e8df5de8b11448423388632e8602ad97bc7885;hp=5f8096818bbde58c8f74f065a3d7ed3f8d80d0c8;hpb=560113811e6d51fffb4ca004e7342ec362234cd2;p=senf.git diff --git a/Socket/NetdeviceController.hh b/Socket/NetdeviceController.hh index 5f80968..6e8c06c 100644 --- a/Socket/NetdeviceController.hh +++ b/Socket/NetdeviceController.hh @@ -29,13 +29,14 @@ // Custom includes #include -#include #include "Protocols/Raw/MACAddress.hh" //#include "NetdeviceController.mpp" ///////////////////////////////hh.p//////////////////////////////////////// +struct ifreq; + namespace senf { /** \brief Netdevice Controller @@ -44,8 +45,6 @@ namespace senf { devices. Note, that some setting members are privileged operations. \see manual page netdevice(7) for more informations. - - \todo Add 'promisc' member to enable/disable promiscuous mode */ class NetdeviceController { @@ -62,21 +61,35 @@ namespace senf { void hardwareAddress(const MACAddress &newAddress); ///< set hardware address /**< Changes the hardware address of the interface. - Note, that setting the hardware address is a privileged operation. It is only allowed when the interface - is not up. If the interface is up, this call will cause an SystemException to be thrown.*/ + Note, that setting the hardware address is a privileged + operation. It is only allowed when the interface is not + up. If the interface is up, this call will cause an + SystemException to be thrown. */ std::string interfaceName() const; ///< return interface name void interfaceName(const std::string &newName); ///< set interface name /**< Changes the name of the interface. - Note, that setting the name is a privileged operation. It is only allowed when the interface - is not up. If the interface is up, this call will cause an SystemException to be thrown.*/ + Note, that setting the name is a privileged operation. + It is only allowed when the interface is not up. If + the interface is up, this call will cause an + SystemException to be thrown. */ int mtu() const; ///< return the Maximum Transmission Unit void mtu(int new_mtu); ///< set the Maximum Transmission Unit /**< Set the MTU (Maximum Transfer Unit) of the device. Note, that this is a privileged operation. - Setting the MTU to too small values may cause kernel crashes. */ + Setting the MTU to too small values may cause kernel + crashes. */ + + bool promisc() const; ///< return \c true if interface is in promiscuous mode + void promisc(bool mode); ///< enable/disable promiscuous mode of the interface + /**< Note, that this is a privileged operation. */ + + bool isUp() const; ///< return \c true if interface is up + void up(); ///< ifconfig up interface + void down(); ///< ifconfig down interface + private: void openSocket(); void doIoctl(ifreq& ifr, int request) const;