X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FUDPProtocol.cc;h=fa3c5e70d4c3be8db47990d1ba37f973b1dac676;hb=1ad3873b372da6187b1fbc645bf276287d2efb54;hp=a107916f5145e36c9e1d89e63ad917af2ed7f0c0;hpb=9c67039f2a8d9c445ce21912ed814743f61b104c;p=senf.git diff --git a/Socket/Protocols/INet/UDPProtocol.cc b/Socket/Protocols/INet/UDPProtocol.cc index a107916..fa3c5e7 100644 --- a/Socket/Protocols/INet/UDPProtocol.cc +++ b/Socket/Protocols/INet/UDPProtocol.cc @@ -34,7 +34,7 @@ #include #include // for SIOCINQ / SIOCOUTQ #include // for if_nametoindex -#include "Socket/SocketHandle.hh" +#include "../../../Socket/SocketHandle.hh" //#include "UDPProtocol.mpp" #define prefix_ @@ -44,8 +44,8 @@ prefix_ unsigned senf::UDPProtocol::available() const { int n; - if (::ioctl(body().fd(),SIOCINQ,&n) < 0) - throw senf::SystemException(errno); + if (::ioctl(fd(),SIOCINQ,&n) < 0) + throwErrno(); return n; } @@ -60,8 +60,8 @@ prefix_ bool senf::UDPProtocol::mcLoop() { int value; socklen_t len (sizeof(value)); - if (::getsockopt(body().fd(),SOL_IP,IP_MULTICAST_LOOP,&value,&len) < 0) - throw SystemException(errno); + if (::getsockopt(fd(),SOL_IP,IP_MULTICAST_LOOP,&value,&len) < 0) + throwErrno(); return value; } @@ -69,8 +69,8 @@ prefix_ void senf::UDPProtocol::mcLoop(bool value) const { int ivalue (value); - if (::setsockopt(body().fd(),SOL_IP,IP_MULTICAST_LOOP,&ivalue,sizeof(ivalue)) < 0) - throw SystemException(errno); + if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_LOOP,&ivalue,sizeof(ivalue)) < 0) + throwErrno(); } prefix_ void senf::UDPProtocol::mcAddMembership(INet4SocketAddress const & mcAddr) @@ -80,8 +80,8 @@ prefix_ void senf::UDPProtocol::mcAddMembership(INet4SocketAddress const & mcAdd mreqn.imr_multiaddr = reinterpret_cast(mcAddr.sockaddr_p())->sin_addr; mreqn.imr_address.s_addr = htons(INADDR_ANY); mreqn.imr_ifindex = 0; - if (::setsockopt(body().fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) - throw SystemException(errno); + if (::setsockopt(fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) + throwErrno(); } prefix_ void senf::UDPProtocol::mcAddMembership(INet4SocketAddress const & mcAddr, @@ -92,8 +92,8 @@ prefix_ void senf::UDPProtocol::mcAddMembership(INet4SocketAddress const & mcAdd mreqn.imr_multiaddr = reinterpret_cast(mcAddr.sockaddr_p())->sin_addr; mreqn.imr_address = reinterpret_cast(localAddr.sockaddr_p())->sin_addr; mreqn.imr_ifindex = 0; - if (::setsockopt(body().fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) - throw SystemException(errno); + if (::setsockopt(fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) + throwErrno(); } prefix_ void senf::UDPProtocol::mcDropMembership(INet4SocketAddress const & mcAddr) @@ -103,8 +103,8 @@ prefix_ void senf::UDPProtocol::mcDropMembership(INet4SocketAddress const & mcAd mreqn.imr_multiaddr = reinterpret_cast(mcAddr.sockaddr_p())->sin_addr; mreqn.imr_address.s_addr = htons(INADDR_ANY); mreqn.imr_ifindex = 0; - if (::setsockopt(body().fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) - throw SystemException(errno); + if (::setsockopt(fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) + throwErrno(); } prefix_ void senf::UDPProtocol::mcDropMembership(INet4SocketAddress const & mcAddr, @@ -115,11 +115,11 @@ prefix_ void senf::UDPProtocol::mcDropMembership(INet4SocketAddress const & mcAd mreqn.imr_multiaddr = reinterpret_cast(mcAddr.sockaddr_p())->sin_addr; mreqn.imr_address = reinterpret_cast(localAddr.sockaddr_p())->sin_addr; mreqn.imr_ifindex = 0; - if (::setsockopt(body().fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) - throw SystemException(errno); + if (::setsockopt(fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) + throwErrno(); } -prefix_ void senf::UDPProtocol::mcIface(std::string iface) +prefix_ void senf::UDPProtocol::mcIface(std::string const & iface) const { struct ip_mreqn mreqn; @@ -127,10 +127,10 @@ prefix_ void senf::UDPProtocol::mcIface(std::string iface) if (!iface.empty()) { mreqn.imr_ifindex = if_nametoindex(iface.c_str()); if (mreqn.imr_ifindex == 0) - throw SystemException(EINVAL); + throwErrno(EINVAL); } - if (::setsockopt(body().fd(),SOL_IP,IP_MULTICAST_IF,&mreqn,sizeof(mreqn)) < 0) - throw SystemException(errno); + if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_IF,&mreqn,sizeof(mreqn)) < 0) + throwErrno(); } prefix_ unsigned senf::UDPProtocol::mcTTL() @@ -138,16 +138,16 @@ prefix_ unsigned senf::UDPProtocol::mcTTL() { int value; socklen_t len (sizeof(value)); - if (::getsockopt(body().fd(),SOL_IP,IP_MULTICAST_TTL,&value,&len) < 0) - throw SystemException(errno); + if (::getsockopt(fd(),SOL_IP,IP_MULTICAST_TTL,&value,&len) < 0) + throwErrno(); return value; } prefix_ void senf::UDPProtocol::mcTTL(unsigned value) const { - if (::setsockopt(body().fd(),SOL_IP,IP_MULTICAST_TTL,&value,sizeof(value)) < 0) - throw SystemException(errno); + if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_TTL,&value,sizeof(value)) < 0) + throwErrno(); }