X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FTCPSocketHandle.cc;h=1574919f6b0923d35d5cf4b1eaf7bfad62c60458;hb=9a988902090d28007578e93bffd809f6bd913155;hp=0eb1446df18aba288d211ca3c30005c18d25022c;hpb=c52cd7d87dbb525c1267aad27391b8b7365dbb57;p=senf.git diff --git a/Socket/TCPSocketHandle.cc b/Socket/TCPSocketHandle.cc index 0eb1446..1574919 100644 --- a/Socket/TCPSocketHandle.cc +++ b/Socket/TCPSocketHandle.cc @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2006 +// Copyright (C) 2006 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) // Kompetenzzentrum fuer Satelitenkommunikation (SatCom) // Stefan Bund @@ -20,7 +20,9 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// Definition of non-inline non-template functions +/** \file + \brief TCPv4SocketHandle and TCPv6SocketHandle non-inline non-template implementation + */ #include "TCPSocketHandle.hh" //#include "TCPSocketHandle.ih" @@ -36,7 +38,10 @@ #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// -prefix_ void satcom::lib::TCPv4SocketProtocol::init_client() +/////////////////////////////////////////////////////////////////////////// +// senf::TCPv4SocketProtocol + +prefix_ void senf::TCPv4SocketProtocol::init_client() const { int sock = ::socket(PF_INET,SOCK_STREAM,0); @@ -46,14 +51,14 @@ prefix_ void satcom::lib::TCPv4SocketProtocol::init_client() } prefix_ void -satcom::lib::TCPv4SocketProtocol::init_client(INet4Address const & address) +senf::TCPv4SocketProtocol::init_client(INet4Address const & address) const { init_client(); connect(address); } -prefix_ void satcom::lib::TCPv4SocketProtocol::init_server() +prefix_ void senf::TCPv4SocketProtocol::init_server() const { int sock = ::socket(PF_INET,SOCK_STREAM,0); @@ -62,7 +67,7 @@ prefix_ void satcom::lib::TCPv4SocketProtocol::init_server() body().fd(sock); } -prefix_ void satcom::lib::TCPv4SocketProtocol::init_server(INet4Address const & address, +prefix_ void senf::TCPv4SocketProtocol::init_server(INet4Address const & address, unsigned backlog) const { @@ -73,12 +78,58 @@ prefix_ void satcom::lib::TCPv4SocketProtocol::init_server(INet4Address const & throw SystemException(errno); } -prefix_ std::auto_ptr satcom::lib::TCPv4SocketProtocol::clone() +prefix_ std::auto_ptr senf::TCPv4SocketProtocol::clone() const { return std::auto_ptr(new TCPv4SocketProtocol()); } +/////////////////////////////////////////////////////////////////////////// +// senf::TCPv6SocketProtocol:: + +prefix_ void senf::TCPv6SocketProtocol::init_client() + const +{ + int sock = ::socket(PF_INET6,SOCK_STREAM,0); + if (sock < 0) + throw SystemException(errno); + body().fd(sock); +} + +prefix_ void +senf::TCPv6SocketProtocol::init_client(INet6SocketAddress const & address) + const +{ + init_client(); + connect(address); +} + +prefix_ void senf::TCPv6SocketProtocol::init_server() + const +{ + int sock = ::socket(PF_INET6,SOCK_STREAM,0); + if (sock < 0) + throw SystemException(errno); + body().fd(sock); +} + +prefix_ void senf::TCPv6SocketProtocol::init_server(INet6SocketAddress const & address, + unsigned backlog) + const +{ + init_server(); + bind(address); + reuseaddr(true); + if (::listen(body().fd(),backlog) < 0) + throw SystemException(errno); +} + +prefix_ std::auto_ptr senf::TCPv6SocketProtocol::clone() + const +{ + return std::auto_ptr(new TCPv6SocketProtocol()); +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "TCPSocketHandle.mpp" @@ -86,5 +137,8 @@ prefix_ std::auto_ptr satcom::lib::TCPv4SocketProto // Local Variables: // mode: c++ -// c-file-style: "satcom" +// fill-column: 100 +// c-file-style: "senf" +// indent-tabs-mode: nil +// ispell-local-dictionary: "american" // End: