X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FProtocols%2FINet%2FUDPProtocol.cc;h=fa3c5e70d4c3be8db47990d1ba37f973b1dac676;hb=1ad3873b372da6187b1fbc645bf276287d2efb54;hp=fd681c9644263e85b9563ae7edd41781954bb3c6;hpb=8d2d26f114d3df0a60c5c516fcf40671b1e55558;p=senf.git diff --git a/Socket/Protocols/INet/UDPProtocol.cc b/Socket/Protocols/INet/UDPProtocol.cc index fd681c9..fa3c5e7 100644 --- a/Socket/Protocols/INet/UDPProtocol.cc +++ b/Socket/Protocols/INet/UDPProtocol.cc @@ -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,8 +115,8 @@ 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 const & iface) @@ -127,10 +127,10 @@ prefix_ void senf::UDPProtocol::mcIface(std::string const & 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(); }