Skip to content
Snippets Groups Projects
Commit d5eb54d5 authored by g0dil's avatar g0dil
Browse files

Socket/Protocols/INet: BUGFIX: Fix SOL_IP to SOL_IPV6 in INet6MulticastSocketProtocol

parent dbe30ee7
No related branches found
No related tags found
No related merge requests found
...@@ -358,7 +358,8 @@ namespace console { ...@@ -358,7 +358,8 @@ namespace console {
BOOST_PARAMETER_KEYWORD(type, default_doc) ///< String rep of default value BOOST_PARAMETER_KEYWORD(type, default_doc) ///< String rep of default value
/**< By default, the default value is documented by /**< By default, the default value is documented by
converting the value to it's string representation converting the value to it's string representation
using \c boost::lexical_cast / \c iostreams. The using the corresponding return value formatter which by
default uses \c boost::lexical_cast / \c iostreams. The
displayed value can be changed by setting this displayed value can be changed by setting this
attribute. */ attribute. */
BOOST_PARAMETER_KEYWORD(type, parser) ///< Argument parser BOOST_PARAMETER_KEYWORD(type, parser) ///< Argument parser
......
...@@ -185,6 +185,8 @@ create(ForwardReadableRange const & range, ...@@ -185,6 +185,8 @@ create(ForwardReadableRange const & range,
return ConcretePacket(interpreter::create(range)); return ConcretePacket(interpreter::create(range));
} }
#endif
// Create packet as new packet after a given packet // Create packet as new packet after a given packet
template <class PacketType> template <class PacketType>
...@@ -194,8 +196,6 @@ senf::ConcretePacket<PacketType>::createAfter(Packet packet) ...@@ -194,8 +196,6 @@ senf::ConcretePacket<PacketType>::createAfter(Packet packet)
return ConcretePacket(interpreter::createAfter(packet.ptr())); return ConcretePacket(interpreter::createAfter(packet.ptr()));
} }
#endif
template <class PacketType> template <class PacketType>
prefix_ senf::ConcretePacket<PacketType> prefix_ senf::ConcretePacket<PacketType>
senf::ConcretePacket<PacketType>::createAfter(Packet packet, senf::NoInit_t) senf::ConcretePacket<PacketType>::createAfter(Packet packet, senf::NoInit_t)
...@@ -217,6 +217,8 @@ senf::ConcretePacket<PacketType>::createAfter(Packet packet, size_type size, sen ...@@ -217,6 +217,8 @@ senf::ConcretePacket<PacketType>::createAfter(Packet packet, size_type size, sen
return ConcretePacket(interpreter::createAfter(packet.ptr(), size, senf::noinit)); return ConcretePacket(interpreter::createAfter(packet.ptr(), size, senf::noinit));
} }
#ifndef DOXYGEN
template <class PacketType> template <class PacketType>
template <class ForwardReadableRange> template <class ForwardReadableRange>
prefix_ senf::ConcretePacket<PacketType> senf::ConcretePacket<PacketType>:: prefix_ senf::ConcretePacket<PacketType> senf::ConcretePacket<PacketType>::
...@@ -226,6 +228,8 @@ createAfter(Packet packet, ForwardReadableRange const & range, ...@@ -226,6 +228,8 @@ createAfter(Packet packet, ForwardReadableRange const & range,
return ConcretePacket(interpreter::createAfter(packet.ptr(), range)); return ConcretePacket(interpreter::createAfter(packet.ptr(), range));
} }
#endif
// Create packet as new packet (header) before a given packet // Create packet as new packet (header) before a given packet
template <class PacketType> template <class PacketType>
......
...@@ -192,7 +192,7 @@ prefix_ void senf::INet6MulticastSocketProtocol::mcAddMembership(INet6Address co ...@@ -192,7 +192,7 @@ prefix_ void senf::INet6MulticastSocketProtocol::mcAddMembership(INet6Address co
struct ipv6_mreq mreqn; struct ipv6_mreq mreqn;
std::copy(mcAddr.begin(), mcAddr.end(), mreqn.ipv6mr_multiaddr.s6_addr); std::copy(mcAddr.begin(), mcAddr.end(), mreqn.ipv6mr_multiaddr.s6_addr);
mreqn.ipv6mr_interface = 0; mreqn.ipv6mr_interface = 0;
if (::setsockopt(fd(),SOL_IP,IPV6_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) if (::setsockopt(fd(),SOL_IPV6,IPV6_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
SENF_THROW_SYSTEM_EXCEPTION("::setsockopt(IPV6_ADD_MEMBERSHIP"); SENF_THROW_SYSTEM_EXCEPTION("::setsockopt(IPV6_ADD_MEMBERSHIP");
} }
...@@ -204,7 +204,7 @@ prefix_ void senf::INet6MulticastSocketProtocol::mcAddMembership(INet6Address co ...@@ -204,7 +204,7 @@ prefix_ void senf::INet6MulticastSocketProtocol::mcAddMembership(INet6Address co
mreqn.ipv6mr_interface = if_nametoindex(iface.c_str()); mreqn.ipv6mr_interface = if_nametoindex(iface.c_str());
if (mreqn.ipv6mr_interface == 0) if (mreqn.ipv6mr_interface == 0)
throw SystemException("::if_nametoindex()",ENOENT SENF_EXC_DEBUGINFO); throw SystemException("::if_nametoindex()",ENOENT SENF_EXC_DEBUGINFO);
if (::setsockopt(fd(),SOL_IP,IPV6_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) if (::setsockopt(fd(),SOL_IPV6,IPV6_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
SENF_THROW_SYSTEM_EXCEPTION("::setsockopt(IPV6_ADD_MEMBERSHIP"); SENF_THROW_SYSTEM_EXCEPTION("::setsockopt(IPV6_ADD_MEMBERSHIP");
} }
...@@ -214,7 +214,7 @@ prefix_ void senf::INet6MulticastSocketProtocol::mcDropMembership(INet6Address c ...@@ -214,7 +214,7 @@ prefix_ void senf::INet6MulticastSocketProtocol::mcDropMembership(INet6Address c
struct ipv6_mreq mreqn; struct ipv6_mreq mreqn;
std::copy(mcAddr.begin(), mcAddr.end(), mreqn.ipv6mr_multiaddr.s6_addr); std::copy(mcAddr.begin(), mcAddr.end(), mreqn.ipv6mr_multiaddr.s6_addr);
mreqn.ipv6mr_interface = 0; mreqn.ipv6mr_interface = 0;
if (::setsockopt(fd(),SOL_IP,IPV6_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) if (::setsockopt(fd(),SOL_IPV6,IPV6_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
SENF_THROW_SYSTEM_EXCEPTION(""); SENF_THROW_SYSTEM_EXCEPTION("");
} }
...@@ -228,7 +228,7 @@ senf::INet6MulticastSocketProtocol::mcDropMembership(INet6Address const & mcAddr ...@@ -228,7 +228,7 @@ senf::INet6MulticastSocketProtocol::mcDropMembership(INet6Address const & mcAddr
mreqn.ipv6mr_interface = if_nametoindex(iface.c_str()); mreqn.ipv6mr_interface = if_nametoindex(iface.c_str());
if (mreqn.ipv6mr_interface == 0) if (mreqn.ipv6mr_interface == 0)
throw SystemException("::if_nametoindex()",ENOENT SENF_EXC_DEBUGINFO); throw SystemException("::if_nametoindex()",ENOENT SENF_EXC_DEBUGINFO);
if (::setsockopt(fd(),SOL_IP,IPV6_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0) if (::setsockopt(fd(),SOL_IPV6,IPV6_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
SENF_THROW_SYSTEM_EXCEPTION(""); SENF_THROW_SYSTEM_EXCEPTION("");
} }
......
...@@ -52,6 +52,6 @@ def SetupForSENF(env): ...@@ -52,6 +52,6 @@ def SetupForSENF(env):
env.Default( env.Default(
env.AlwaysBuild( env.AlwaysBuild(
env.Command('senf/libsenf.a', [], [ 'scons -C senf $SENF_BUILDOPTS libsenf.a' ]))) env.Command('senf/libsenf.a', [], [ 'scons -C %s $SENF_BUILDOPTS libsenf.a' % os.path.realpath('senf')])))
else: else:
print '\nUsing global SENF\n' print '\nUsing global SENF\n'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment