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

Merged revisions 570-575,577-578 via svnmerge from

https://svn.berlios.de/svnroot/repos/senf/branches/socket-cleanup

........
  r573 | g0dil | 2007-12-18 12:15:23 +0100 (Tue, 18 Dec 2007) | 6 lines
  
  Socket: Replace 'SocketProtocol::body()' member with 'fh()' and 'fd()' members
  Socket: Rename ConvertibleString to StreamableString and use 'operator<<' instead of 'operator='
  Socket: some minor documentation clarifications
  Socket/Protocols/UN: Removed unneeded UNAddress
  Socket/Protocols/UN: Fixed UNSocketAddress to adhere to the GenericAddressingPolicy requirements
........
  r577 | g0dil | 2007-12-18 13:08:27 +0100 (Tue, 18 Dec 2007) | 1 line
  
  Socket/Protocols/UN: Add all_includes.hh to svn:ignore
........
parent fbf498f7
No related branches found
No related tags found
No related merge requests found
Showing
with 130 additions and 76 deletions
......@@ -67,6 +67,11 @@ prefix_ void senf::FileBody::terminate()
}
}
prefix_ senf::FileHandle senf::FileBody::handle()
{
return FileHandle(ptr(this));
}
prefix_ int senf::FileBody::fd()
const
{
......@@ -194,6 +199,10 @@ prefix_ senf::FileHandle::FileHandle(std::auto_ptr<FileBody> body)
: body_(body.release())
{}
prefix_ senf::FileHandle::FileHandle(FileBody::ptr body)
: body_(body)
{}
prefix_ senf::FileBody & senf::FileHandle::body()
{
BOOST_ASSERT(body_);
......
......@@ -182,6 +182,8 @@ namespace senf {
\c new. To configure the FileHandle behavior, A derived class
may provide any class derived from FileBody here. */
explicit FileHandle(FileBody::ptr body);
FileBody & body(); ///< Access body
FileBody const & body() const; ///< Access body in const context
static FileBody & body(FileHandle & handle); ///< Access body of another FileHandle instance
......@@ -192,6 +194,8 @@ namespace senf {
private:
FileBody::ptr body_;
friend class FileBody;
};
/** \brief Adapt FileHandle to senf::Scheduler
......
......@@ -36,6 +36,7 @@
namespace senf {
class FileHandle;
/** \brief FileHandle referenced body
......@@ -90,6 +91,8 @@ namespace senf {
///@}
///////////////////////////////////////////////////////////////////////////
FileHandle handle();
int fd() const;
void fd(int fd);
......
......@@ -42,7 +42,7 @@ prefix_ std::pair<bool,unsigned> senf::BSDSocketProtocol::linger()
struct linger ling;
socklen_t len = sizeof(ling);
::memset(&ling,sizeof(ling),0);
if (::getsockopt(body().fd(),SOL_SOCKET,SO_LINGER,&ling,&len) < 0)
if (::getsockopt(fd(),SOL_SOCKET,SO_LINGER,&ling,&len) < 0)
throwErrno();
return std::make_pair(ling.l_onoff, ling.l_linger);
}
......@@ -53,7 +53,7 @@ prefix_ void senf::BSDSocketProtocol::linger(bool enable, unsigned timeout)
struct linger ling;
ling.l_onoff = enable;
ling.l_linger = timeout;
if (::setsockopt(body().fd(),SOL_SOCKET,SO_LINGER,&ling,sizeof(ling)) < 0)
if (::setsockopt(fd(),SOL_SOCKET,SO_LINGER,&ling,sizeof(ling)) < 0)
throwErrno();
}
......@@ -61,7 +61,7 @@ prefix_ struct timeval senf::BSDSocketProtocol::timestamp()
const
{
struct timeval tv;
if (::ioctl(body().fd(), SIOCGSTAMP, &tv) < 0)
if (::ioctl(fd(), SIOCGSTAMP, &tv) < 0)
throwErrno();
return tv;
}
......@@ -73,7 +73,7 @@ prefix_ bool senf::AddressableBSDSocketProtocol::reuseaddr()
{
int value;
socklen_t len (sizeof(value));
if (::getsockopt(body().fd(),SOL_SOCKET,SO_REUSEADDR,&value,&len) < 0)
if (::getsockopt(fd(),SOL_SOCKET,SO_REUSEADDR,&value,&len) < 0)
throwErrno();
return value;
}
......@@ -82,7 +82,7 @@ prefix_ void senf::AddressableBSDSocketProtocol::reuseaddr(bool value)
const
{
int ivalue (value);
if (::setsockopt(body().fd(),SOL_SOCKET,SO_REUSEADDR,&ivalue,sizeof(ivalue)) < 0)
if (::setsockopt(fd(),SOL_SOCKET,SO_REUSEADDR,&ivalue,sizeof(ivalue)) < 0)
throwErrno();
}
......
......@@ -45,10 +45,10 @@ prefix_ void senf::DVBDemuxSectionProtocol::init_client(unsigned short adapter,
{
std::string devDemux = str( boost::format(
"/dev/dvb/adapter%d/demux%d") % adapter % device);
int fd = open(devDemux.c_str(), O_RDONLY | O_NONBLOCK);
if (fd < 0)
int f = open(devDemux.c_str(), O_RDONLY | O_NONBLOCK);
if (f < 0)
throwErrno();
body().fd(fd);
fd(f);
}
prefix_ unsigned senf::DVBDemuxSectionProtocol::available()
......@@ -66,7 +66,7 @@ prefix_ std::auto_ptr<senf::SocketProtocol> senf::DVBDemuxSectionProtocol::clone
prefix_ void senf::DVBDemuxSectionProtocol::setSectionFilter(struct dmx_sct_filter_params *filter)
const
{
if (::ioctl(body().fd(), DMX_SET_FILTER, filter) < 0)
if (::ioctl(fd(), DMX_SET_FILTER, filter) < 0)
throwErrno();
}
......@@ -77,10 +77,10 @@ prefix_ void senf::DVBDemuxPESProtocol::init_client(unsigned short adapter, unsi
{
std::string devDemux = str( boost::format(
"/dev/dvb/adapter%d/demux%d") % adapter % device);
int fd = open(devDemux.c_str(), O_RDONLY | O_NONBLOCK);
if (fd < 0)
int f = open(devDemux.c_str(), O_RDONLY | O_NONBLOCK);
if (f < 0)
throwErrno();
body().fd(fd);
fd(f);
}
prefix_ unsigned senf::DVBDemuxPESProtocol::available()
......@@ -98,7 +98,7 @@ prefix_ std::auto_ptr<senf::SocketProtocol> senf::DVBDemuxPESProtocol::clone()
prefix_ void senf::DVBDemuxPESProtocol::setPESFilter(struct dmx_pes_filter_params *filter)
const
{
if (::ioctl(body().fd(), DMX_SET_PES_FILTER, filter) < 0)
if (::ioctl(fd(), DMX_SET_PES_FILTER, filter) < 0)
throwErrno();
}
......@@ -109,10 +109,10 @@ prefix_ void senf::DVBDvrProtocol::init_client(unsigned short adapter, unsigned
{
std::string devDvr = str( boost::format(
"/dev/dvb/adapter%d/dvr%d") % adapter % device);
int fd = open(devDvr.c_str(), O_RDONLY | O_NONBLOCK);
if (fd < 0)
int f = open(devDvr.c_str(), O_RDONLY | O_NONBLOCK);
if (f < 0)
throwErrno();
body().fd(fd);
fd(f);
}
prefix_ unsigned senf::DVBDvrProtocol::available()
......
......@@ -41,21 +41,21 @@
prefix_ void senf::DVBDemuxProtocol::setBufferSize(unsigned long size)
const
{
if (::ioctl(body().fd(), DMX_SET_BUFFER_SIZE, size) < 0)
if (::ioctl(fd(), DMX_SET_BUFFER_SIZE, size) < 0)
throwErrno();
}
prefix_ void senf::DVBDemuxProtocol::startFiltering()
const
{
if (::ioctl(body().fd(), DMX_START) < 0)
if (::ioctl(fd(), DMX_START) < 0)
throwErrno();
}
prefix_ void senf::DVBDemuxProtocol::stopFiltering()
const
{
if (::ioctl(body().fd(), DMX_STOP) < 0)
if (::ioctl(fd(), DMX_STOP) < 0)
throwErrno();
}
......
......@@ -45,10 +45,10 @@ prefix_ void senf::DVBFrontendProtocol::init_client(uint8_t adapter, boost::uint
{
std::string devFrontend = str( boost::format(
"/dev/dvb/adapter%d/frontend%d") % adapter % device);
int fd = open(devFrontend.c_str(), O_RDONLY | O_NONBLOCK);
if (fd < 0)
int f = open(devFrontend.c_str(), O_RDONLY | O_NONBLOCK);
if (f < 0)
throwErrno();
body().fd(fd);
fd(f);
}
prefix_ unsigned senf::DVBFrontendProtocol::available()
......@@ -73,7 +73,7 @@ prefix_ std::auto_ptr<senf::SocketProtocol> senf::DVBFrontendProtocol::clone()
prefix_ void senf::DVBFrontendProtocol::signalStrength(int16_t *strength)
const
{
if (::ioctl(body().fd(), FE_READ_SIGNAL_STRENGTH, strength) < 0)
if (::ioctl(fd(), FE_READ_SIGNAL_STRENGTH, strength) < 0)
throwErrno();
}
......
......@@ -47,7 +47,7 @@ senf::ConnectedRawV4SocketProtocol::init_client(int const & protocol)
int sock = ::socket(PF_INET, SOCK_RAW, protocol);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......@@ -79,7 +79,7 @@ prefix_ void senf::ConnectedRawV6SocketProtocol::init_client(int const & protoco
int sock = ::socket(PF_INET6,SOCK_RAW,protocol);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......@@ -98,3 +98,15 @@ prefix_ std::auto_ptr<senf::SocketProtocol> senf::ConnectedRawV6SocketProtocol::
///////////////////////////////cc.e////////////////////////////////////////
#undef prefix_
//#include "ConnectedRawInetSocketHandle.mpp"
// Local Variables:
// mode: c++
// fill-column: 100
// comment-column: 40
// c-file-style: "senf"
// indent-tabs-mode: nil
// ispell-local-dictionary: "american"
// compile-command: "scons -u test"
// End:
......@@ -47,7 +47,7 @@ prefix_ void senf::ConnectedUDPv4SocketProtocol::init_client()
int sock = ::socket(PF_INET,SOCK_DGRAM,0);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......@@ -73,7 +73,7 @@ prefix_ void senf::ConnectedUDPv6SocketProtocol::init_client()
int sock = ::socket(PF_INET6,SOCK_DGRAM,0);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......
......@@ -83,7 +83,7 @@ namespace senf {
INet4Address address() const; ///< Return address
unsigned port() const; ///< Return port number
bool boolean_test() const; ///< \c true, if address is empty (i.e. 0.0.0.0:0)
bool boolean_test() const; ///< \c true, if address is not empty (i.e. 0.0.0.0:0)
void clear(); ///< Clear address/port to 0.0.0.0:0
......
......@@ -41,14 +41,14 @@
prefix_ void senf::IPv4Protocol::connect(INet4SocketAddress const & address)
const
{
if (::connect(body().fd(),address.sockaddr_p(), address.sockaddr_len()) < 0)
if (::connect(fd(),address.sockaddr_p(), address.sockaddr_len()) < 0)
throwErrno();
}
prefix_ void senf::IPv4Protocol::bind(INet4SocketAddress const & address)
const
{
if (::bind(body().fd(),address.sockaddr_p(), address.sockaddr_len()) < 0)
if (::bind(fd(),address.sockaddr_p(), address.sockaddr_len()) < 0)
throwErrno();
}
......@@ -59,14 +59,14 @@ prefix_ void senf::IPv4Protocol::bind(INet4SocketAddress const & address)
prefix_ void senf::IPv6Protocol::connect(INet6SocketAddress const & address)
const
{
if (::connect(body().fd(),address.sockaddr_p(), address.sockaddr_len()) < 0)
if (::connect(fd(),address.sockaddr_p(), address.sockaddr_len()) < 0)
throwErrno();
}
prefix_ void senf::IPv6Protocol::bind(INet6SocketAddress const & address)
const
{
if (::bind(body().fd(),address.sockaddr_p(), address.sockaddr_len()) < 0)
if (::bind(fd(),address.sockaddr_p(), address.sockaddr_len()) < 0)
throwErrno();
}
......
......@@ -37,7 +37,7 @@ prefix_ unsigned senf::RawInetProtocol::available()
const
{
int n;
if (::ioctl(body().fd(),SIOCINQ,&n) < 0)
if (::ioctl(fd(),SIOCINQ,&n) < 0)
throwErrno();
return n;
}
......@@ -47,4 +47,18 @@ prefix_ bool senf::RawInetProtocol::eof()
{
return false;
}
///////////////////////////////cc.e////////////////////////////////////////
#undef prefix_
//#include "UDPProtocol.mpp"
// Local Variables:
// mode: c++
// fill-column: 100
// comment-column: 40
// c-file-style: "senf"
// indent-tabs-mode: nil
// ispell-local-dictionary: "american"
// compile-command: "scons -u test"
// End:
......@@ -47,7 +47,7 @@ senf::RawV4SocketProtocol::init_client(int const & protocol)
int sock = ::socket(PF_INET, SOCK_RAW, protocol);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......@@ -79,7 +79,7 @@ prefix_ void senf::RawV6SocketProtocol::init_client(int const & protocol)
int sock = ::socket(PF_INET6,SOCK_RAW,protocol);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......@@ -98,3 +98,15 @@ prefix_ std::auto_ptr<senf::SocketProtocol> senf::RawV6SocketProtocol::clone()
///////////////////////////////cc.e////////////////////////////////////////
#undef prefix_
//#include "RawInetSocketHandle.mpp"
// Local Variables:
// mode: c++
// fill-column: 100
// comment-column: 40
// c-file-style: "senf"
// indent-tabs-mode: nil
// ispell-local-dictionary: "american"
// compile-command: "scons -u test"
// End:
......@@ -44,7 +44,7 @@ prefix_ bool senf::TCPProtocol::nodelay()
{
int value;
socklen_t len (sizeof(value));
if (::getsockopt(body().fd(),SOL_TCP,TCP_NODELAY,&value,&len) < 0)
if (::getsockopt(fd(),SOL_TCP,TCP_NODELAY,&value,&len) < 0)
throwErrno();
return value;
}
......@@ -53,7 +53,7 @@ prefix_ void senf::TCPProtocol::nodelay(bool value)
const
{
int ivalue (value);
if (::setsockopt(body().fd(),SOL_TCP,TCP_NODELAY,&ivalue,sizeof(ivalue)) < 0)
if (::setsockopt(fd(),SOL_TCP,TCP_NODELAY,&ivalue,sizeof(ivalue)) < 0)
throwErrno();
}
......@@ -61,7 +61,7 @@ prefix_ unsigned senf::TCPProtocol::siocinq()
const
{
int n;
if (::ioctl(body().fd(),SIOCINQ,&n) < 0)
if (::ioctl(fd(),SIOCINQ,&n) < 0)
throwErrno();
return n;
}
......@@ -70,7 +70,7 @@ prefix_ unsigned senf::TCPProtocol::siocoutq()
const
{
int n;
if (::ioctl(body().fd(),SIOCOUTQ,&n) < 0)
if (::ioctl(fd(),SIOCOUTQ,&n) < 0)
throwErrno();
return n;
}
......@@ -84,7 +84,7 @@ prefix_ unsigned senf::TCPProtocol::available()
prefix_ bool senf::TCPProtocol::eof()
const
{
return body().readable() && available()==0;
return fh().readable() && available()==0;
}
......
......@@ -47,7 +47,7 @@ prefix_ void senf::TCPv4SocketProtocol::init_client()
int sock = ::socket(PF_INET,SOCK_STREAM,0);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......@@ -64,7 +64,7 @@ prefix_ void senf::TCPv4SocketProtocol::init_server()
int sock = ::socket(PF_INET,SOCK_STREAM,0);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void senf::TCPv4SocketProtocol::init_server(INet4SocketAddress const & address,
......@@ -74,7 +74,7 @@ prefix_ void senf::TCPv4SocketProtocol::init_server(INet4SocketAddress const & a
init_server();
bind(address);
reuseaddr(true);
if (::listen(body().fd(),backlog) < 0)
if (::listen(fd(),backlog) < 0)
throwErrno();
}
......@@ -93,7 +93,7 @@ prefix_ void senf::TCPv6SocketProtocol::init_client()
int sock = ::socket(PF_INET6,SOCK_STREAM,0);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......@@ -110,7 +110,7 @@ prefix_ void senf::TCPv6SocketProtocol::init_server()
int sock = ::socket(PF_INET6,SOCK_STREAM,0);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void senf::TCPv6SocketProtocol::init_server(INet6SocketAddress const & address,
......@@ -120,7 +120,7 @@ prefix_ void senf::TCPv6SocketProtocol::init_server(INet6SocketAddress const & a
init_server();
bind(address);
reuseaddr(true);
if (::listen(body().fd(),backlog) < 0)
if (::listen(fd(),backlog) < 0)
throwErrno();
}
......
......@@ -62,16 +62,16 @@ namespace senf {
/** \brief IPv4 TCP Socket Protocol
\par Socket Handle typedefs:
\ref TCPv4ClientSocketHandle (ProtocolClientSocketHandle), \ref TCPv4ServerSocketHandle
(ProtocolServerSocketHandle)
\ref TCPv4ClientSocketHandle (ProtocolClientSocketHandle), \ref TCPv4ServerSocketHandle
(ProtocolServerSocketHandle)
\par Policy Interface:
ClientSocketHandle::read(), ClientSocketHandle::write(), ClientSocketHandle::bind(),
ClientSocketHandle::local(), ClientSocketHandle::connect(), ClientSocketHandle::peer(),
ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
ClientSocketHandle::read(), ClientSocketHandle::write(), ClientSocketHandle::bind(),
ClientSocketHandle::local(), ClientSocketHandle::connect(), ClientSocketHandle::peer(),
ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
\par Address Type:
INet4Address
INet4Address
TCPv4SocketProtocol provides an internet protocol stream socket based on the TCP protocol
and IPv4 addressing.
......
......@@ -44,7 +44,7 @@ prefix_ unsigned senf::UDPProtocol::available()
const
{
int n;
if (::ioctl(body().fd(),SIOCINQ,&n) < 0)
if (::ioctl(fd(),SIOCINQ,&n) < 0)
throwErrno();
return n;
}
......@@ -60,7 +60,7 @@ prefix_ bool senf::UDPProtocol::mcLoop()
{
int value;
socklen_t len (sizeof(value));
if (::getsockopt(body().fd(),SOL_IP,IP_MULTICAST_LOOP,&value,&len) < 0)
if (::getsockopt(fd(),SOL_IP,IP_MULTICAST_LOOP,&value,&len) < 0)
throwErrno();
return value;
}
......@@ -69,7 +69,7 @@ prefix_ void senf::UDPProtocol::mcLoop(bool value)
const
{
int ivalue (value);
if (::setsockopt(body().fd(),SOL_IP,IP_MULTICAST_LOOP,&ivalue,sizeof(ivalue)) < 0)
if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_LOOP,&ivalue,sizeof(ivalue)) < 0)
throwErrno();
}
......@@ -80,7 +80,7 @@ prefix_ void senf::UDPProtocol::mcAddMembership(INet4SocketAddress const & mcAdd
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(body().fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
if (::setsockopt(fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
throwErrno();
}
......@@ -92,7 +92,7 @@ prefix_ void senf::UDPProtocol::mcAddMembership(INet4SocketAddress const & mcAdd
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(body().fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
if (::setsockopt(fd(),SOL_IP,IP_ADD_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
throwErrno();
}
......@@ -103,7 +103,7 @@ prefix_ void senf::UDPProtocol::mcDropMembership(INet4SocketAddress const & mcAd
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(body().fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
if (::setsockopt(fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
throwErrno();
}
......@@ -115,7 +115,7 @@ prefix_ void senf::UDPProtocol::mcDropMembership(INet4SocketAddress const & mcAd
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(body().fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
if (::setsockopt(fd(),SOL_IP,IP_DROP_MEMBERSHIP,&mreqn,sizeof(mreqn)) < 0)
throwErrno();
}
......@@ -129,7 +129,7 @@ prefix_ void senf::UDPProtocol::mcIface(std::string const & iface)
if (mreqn.imr_ifindex == 0)
throwErrno(EINVAL);
}
if (::setsockopt(body().fd(),SOL_IP,IP_MULTICAST_IF,&mreqn,sizeof(mreqn)) < 0)
if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_IF,&mreqn,sizeof(mreqn)) < 0)
throwErrno();
}
......@@ -138,7 +138,7 @@ prefix_ unsigned senf::UDPProtocol::mcTTL()
{
int value;
socklen_t len (sizeof(value));
if (::getsockopt(body().fd(),SOL_IP,IP_MULTICAST_TTL,&value,&len) < 0)
if (::getsockopt(fd(),SOL_IP,IP_MULTICAST_TTL,&value,&len) < 0)
throwErrno();
return value;
}
......@@ -146,7 +146,7 @@ prefix_ unsigned senf::UDPProtocol::mcTTL()
prefix_ void senf::UDPProtocol::mcTTL(unsigned value)
const
{
if (::setsockopt(body().fd(),SOL_IP,IP_MULTICAST_TTL,&value,sizeof(value)) < 0)
if (::setsockopt(fd(),SOL_IP,IP_MULTICAST_TTL,&value,sizeof(value)) < 0)
throwErrno();
}
......
......@@ -47,7 +47,7 @@ prefix_ void senf::UDPv4SocketProtocol::init_client()
int sock = ::socket(PF_INET,SOCK_DGRAM,0);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......@@ -73,7 +73,7 @@ prefix_ void senf::UDPv6SocketProtocol::init_client()
int sock = ::socket(PF_INET6,SOCK_DGRAM,0);
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ void
......
......@@ -51,7 +51,7 @@ prefix_ void senf::PacketProtocol::init_client(SocketType type, int protocol)
int sock = ::socket(PF_PACKET, socktype, htons(protocol));
if (sock < 0)
throwErrno();
body().fd(sock);
fd(sock);
}
prefix_ std::auto_ptr<senf::SocketProtocol> senf::PacketProtocol::clone()
......@@ -63,9 +63,9 @@ prefix_ std::auto_ptr<senf::SocketProtocol> senf::PacketProtocol::clone()
prefix_ unsigned senf::PacketProtocol::available()
const
{
if (! body().readable())
if (! fh().readable())
return 0;
ssize_t l = ::recv(body().fd(),0,0,MSG_PEEK | MSG_TRUNC);
ssize_t l = ::recv(fd(),0,0,MSG_PEEK | MSG_TRUNC);
if (l < 0)
throwErrno();
return l;
......@@ -100,14 +100,14 @@ prefix_ void senf::PacketProtocol::mcAdd(std::string const & interface,
MACAddress const & address)
const
{
do_mc(body().fd(),interface,address,true);
do_mc(fd(),interface,address,true);
}
prefix_ void senf::PacketProtocol::mcDrop(std::string const & interface,
MACAddress const & address)
const
{
do_mc(body().fd(),interface,address,false);
do_mc(fd(),interface,address,false);
}
///////////////////////////////cc.e////////////////////////////////////////
......
......@@ -48,8 +48,8 @@ prefix_ void senf::TapProtocol::init_client()
prefix_ void senf::TapProtocol::init_client(std::string const & interface_name, bool const NO_PI)
const
{
int fd;
if ( (fd = ::open("/dev/net/tun", O_RDWR)) < 0 )
int f;
if ( (f = ::open("/dev/net/tun", O_RDWR)) < 0 )
throwErrno();
struct ifreq ifr;
::memset( &ifr, 0, sizeof(ifr));
......@@ -57,9 +57,9 @@ prefix_ void senf::TapProtocol::init_client(std::string const & interface_name,
if (NO_PI)
ifr.ifr_flags |= IFF_NO_PI;
interface_name.copy( ifr.ifr_name, IFNAMSIZ);
if (::ioctl(fd, TUNSETIFF, (void *) &ifr) < 0 )
if (::ioctl(f, TUNSETIFF, (void *) &ifr) < 0 )
throwErrno();
body().fd(fd);
fd(f);
}
prefix_ std::auto_ptr<senf::SocketProtocol> senf::TapProtocol::clone()
......@@ -71,9 +71,9 @@ prefix_ std::auto_ptr<senf::SocketProtocol> senf::TapProtocol::clone()
prefix_ unsigned senf::TapProtocol::available()
const
{
if (! body().readable())
if (! fh().readable())
return 0;
ssize_t l = ::recv(body().fd(),0,0,MSG_PEEK | MSG_TRUNC);
ssize_t l = ::recv(fd(),0,0,MSG_PEEK | MSG_TRUNC);
if (l < 0)
//throwErrno();
return 1588;
......
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