X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FRaw%2FPacketSocketHandle.hh;h=35898ac11dcfe0a7f0fb68a9c9ca016e076d6b2b;hb=a1fdb7bb122f0b05be809a922d4b7ef5e125fa67;hp=4869214feeef49faeddbe5cf9fa4bff9000a621f;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/Socket/Protocols/Raw/PacketSocketHandle.hh b/Socket/Protocols/Raw/PacketSocketHandle.hh index 4869214..35898ac 100644 --- a/Socket/Protocols/Raw/PacketSocketHandle.hh +++ b/Socket/Protocols/Raw/PacketSocketHandle.hh @@ -21,11 +21,11 @@ // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file - \brief PacketProtocol and PacketSocketHandle public header + \brief PacketSocketProtocol and PacketSocketHandle public header */ -#ifndef HH_PacketSocketHandle_ -#define HH_PacketSocketHandle_ 1 +#ifndef HH_SENF_Socket_Protocols_Raw_PacketSocketHandle_ +#define HH_SENF_Socket_Protocols_Raw_PacketSocketHandle_ 1 // Custom includes #include "../../../Socket/SocketPolicy.hh" @@ -35,6 +35,7 @@ #include "../../../Socket/CommunicationPolicy.hh" #include "../../../Socket/ReadWritePolicy.hh" #include "../../../Socket/Protocols/BSDSocketProtocol.hh" +#include "../../../Socket/Protocols/DatagramSocketProtocol.hh" #include "LLAddressing.hh" //#include "PacketSocketHandle.mpp" @@ -52,7 +53,7 @@ namespace senf { UnconnectedCommunicationPolicy, ReadablePolicy, WriteablePolicy - >::policy Packet_Policy; ///< Policy of PacketProtocol + >::policy Packet_Policy; ///< Policy of PacketSocketProtocol /** \brief Raw Packet-Socket access (Linux) @@ -61,21 +62,21 @@ namespace senf { \par Policy Interface: ClientSocketHandle::read(), ClientSocketHandle::readfrom(), ClientSocketHandle::writeto(), - ClientSocketHandle::bind(), ClientSocketHandle::local(), ClientSocketHandle::rcvbuf(), - ClientSocketHandle::sndbuf() + ClientSocketHandle::bind(), ClientSocketHandle::local() \par Address Type: - LLSocketAddress + LLSocketAddress - The PacketProtocol provides access to the linux packet socket API. This API gives access to + The PacketSocketProtocol provides access to the linux packet socket API. This API gives access to the low level network packets. The packet socket allows read() and write() operations. The - PacketProtocol has no concept of a server socket. + PacketSocketProtocol has no concept of a server socket. This class is utilized as the protocol class of the ProtocolClientSocketHandle via the Socket Handle typedefs above. */ - class PacketProtocol - : public ConcreteSocketProtocol, + class PacketSocketProtocol + : public ConcreteSocketProtocol, + public DatagramSocketProtocol, public BSDSocketProtocol { public: @@ -121,6 +122,9 @@ namespace senf { ///< Disable reception of a multicast group /**< \see \ref mcAdd() */ + void promisc(std::string const & interface, bool mode) const; + ///< enable/disable promiscuous mode + ///@} ///\name Abstract Interface Implementation @@ -132,8 +136,8 @@ namespace senf { ///@} }; - typedef ProtocolClientSocketHandle PacketSocketHandle; - ///< SocketHandle of the PacketProtocol + typedef ProtocolClientSocketHandle PacketSocketHandle; + ///< SocketHandle of the PacketSocketProtocol /**< \related PacketPrototol */ /// @}