// Custom includes
#include <sys/socket.h>
#include <netpacket/packet.h>
-#include "../../SocketPolicy.hh"
-#include "../../FileHandle.hh"
-#include "../BSDAddressingPolicy.hh"
-#include "../BSDSocketAddress.hh"
+#include <senf/Socket/Protocols/BSDAddressingPolicy.hh>
+#include <senf/Socket/Protocols/BSDSocketAddress.hh>
#include "MACAddress.hh"
//#include "LLAddressing.mpp"
/** \brief Valid pkttype() values
- These are the possible values returned by pkttype()
+ These are the possible values returned by pkttype()
*/
enum PktType { Undefined = 0
, Host = PACKET_HOST /**< Packet destined for this host */
, OtherHost = PACKET_OTHERHOST /**< Packet sent to another host (promisc) */
, Outgoing = PACKET_OUTGOING /**< Packet sent out from this host */
};
-
+
///////////////////////////////////////////////////////////////////////////
///\name Structors and default members
///@{
PacketSocketHandle::bind() with.
\param[in] proto Protocol (Ethertype) to listen for
\param[in] iface Interface name to bind to */
- explicit LLSocketAddress(std::string const &iface);
+ explicit LLSocketAddress(std::string const & iface);
///< Create address for \c bind()
/**< This constructs an LLSocketAddress valid for calling
\c PacketSocketHandle::bind() with.
- \param[in] iface Interface name to bind to */
+ \param[in] iface Interface name to bind to
+ \throws UnknownInterfaceException if \a iface is not
+ a valid interface name. */
// This constructor is for sending packets
explicit LLSocketAddress(MACAddress const & addr, std::string const & iface="");
use with \c PacketSocketHandle::sendto() on a \c
SOCK_DGRAM packet socket.
\param addr Address to send data to
- \param iface Interface to send packet from */
+ \param iface Interface to send packet from
+ \throws UnknownInterfaceException if \a iface is not
+ a valid interface name. */
LLSocketAddress(const LLSocketAddress& other);
LLSocketAddress& operator=(const LLSocketAddress& other);
void address(MACAddress const & addr); ///< Change address
void interface(std::string const & iface); ///< Change interface
+ /**< \throws UnknownInterfaceException if \a iface
+ is not a valid interface name. */
void protocol(unsigned prot); ///< Change protocol
using BSDSocketAddress::sockaddr_p;
or peer() members.
*/
struct LLAddressingPolicy
- : public AddressingPolicyBase,
+ : public BSDAddressingPolicy,
private BSDAddressingPolicyMixin<LLSocketAddress>
{
typedef LLSocketAddress Address;