Merged revisions 570-572,574-575,578-579,581-595,598-611 via svnmerge from
[senf.git] / Socket / Protocols / INet / UDPProtocol.cc
index fa3c5e7..3b276b3 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 //
 // Copyright (C) 2006
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-//     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// Fraunhofer Institute for Open Communication Systems (FOKUS) 
+// Competence Center NETwork research (NET), St. Augustin, GERMANY 
+//     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
@@ -55,102 +55,6 @@ prefix_ bool senf::UDPProtocol::eof()
     return false;
 }
 
-prefix_ bool senf::UDPProtocol::mcLoop()
-    const
-{
-    int value;
-    socklen_t len (sizeof(value));
-    if (::getsockopt(fd(),SOL_IP,IP_MULTICAST_LOOP,&value,&len) < 0)
-        throwErrno();
-    return value;
-}
-
-prefix_ void senf::UDPProtocol::mcLoop(bool value)
-    const
-{
-    int ivalue (value);
-    if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_LOOP,&ivalue,sizeof(ivalue)) < 0)
-        throwErrno();
-}
-
-prefix_ void senf::UDPProtocol::mcAddMembership(INet4SocketAddress const & mcAddr)
-    const
-{
-    struct ip_mreqn mreqn;
-    mreqn.imr_multiaddr = reinterpret_cast<struct sockaddr_in const *>(mcAddr.sockaddr_p())->sin_addr;
-    mreqn.imr_address.s_addr = htons(INADDR_ANY);
-    mreqn.imr_ifindex = 0;
-    if (::setsockopt(fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
-        throwErrno();
-}
-
-prefix_ void senf::UDPProtocol::mcAddMembership(INet4SocketAddress const & mcAddr,
-                                                        INet4SocketAddress const & localAddr)
-    const
-{
-    struct ip_mreqn mreqn;
-    mreqn.imr_multiaddr = reinterpret_cast<struct sockaddr_in const *>(mcAddr.sockaddr_p())->sin_addr;
-    mreqn.imr_address = reinterpret_cast<struct sockaddr_in const *>(localAddr.sockaddr_p())->sin_addr;
-    mreqn.imr_ifindex = 0;
-    if (::setsockopt(fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
-        throwErrno();
-}
-
-prefix_ void senf::UDPProtocol::mcDropMembership(INet4SocketAddress const & mcAddr)
-    const
-{
-    struct ip_mreqn mreqn;
-    mreqn.imr_multiaddr = reinterpret_cast<struct sockaddr_in const *>(mcAddr.sockaddr_p())->sin_addr;
-    mreqn.imr_address.s_addr = htons(INADDR_ANY);
-    mreqn.imr_ifindex = 0;
-    if (::setsockopt(fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
-        throwErrno();
-}
-
-prefix_ void senf::UDPProtocol::mcDropMembership(INet4SocketAddress const & mcAddr,
-                                                         INet4SocketAddress const & localAddr)
-    const
-{
-    struct ip_mreqn mreqn;
-    mreqn.imr_multiaddr = reinterpret_cast<struct sockaddr_in const *>(mcAddr.sockaddr_p())->sin_addr;
-    mreqn.imr_address = reinterpret_cast<struct sockaddr_in const *>(localAddr.sockaddr_p())->sin_addr;
-    mreqn.imr_ifindex = 0;
-    if (::setsockopt(fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
-        throwErrno();
-}
-
-prefix_ void senf::UDPProtocol::mcIface(std::string const & iface)
-    const
-{
-    struct ip_mreqn mreqn;
-    ::memset(&mreqn,sizeof(mreqn),0);
-    if (!iface.empty()) {
-        mreqn.imr_ifindex = if_nametoindex(iface.c_str());
-        if (mreqn.imr_ifindex == 0)
-            throwErrno(EINVAL);
-    }
-    if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_IF,&mreqn,sizeof(mreqn)) < 0)
-        throwErrno();
-}
-
-prefix_ unsigned senf::UDPProtocol::mcTTL()
-    const
-{
-    int value;
-    socklen_t len (sizeof(value));
-    if (::getsockopt(fd(),SOL_IP,IP_MULTICAST_TTL,&value,&len) < 0)
-        throwErrno();
-    return value;
-}
-
-prefix_ void senf::UDPProtocol::mcTTL(unsigned value)
-    const
-{
-    if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_TTL,&value,sizeof(value)) < 0)
-        throwErrno();
-}
-
-
 ///////////////////////////////cc.e////////////////////////////////////////
 #undef prefix_
 //#include "UDPProtocol.mpp"