X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fstreamlistensocket.cpp;h=693f3040dc85c0a81dcc1bd6b8271dea8a91f88a;hb=4696a776e2875697ea0d6a733609dd9c37918971;hp=88a37bf73fb4f6bc3563788f05714b2c1a36350a;hpb=2aab4004e71a2e5c773289e0be5e58aec6a8d339;p=libs%2Fnet.git diff --git a/source/streamlistensocket.cpp b/source/streamlistensocket.cpp index 88a37bf..693f304 100644 --- a/source/streamlistensocket.cpp +++ b/source/streamlistensocket.cpp @@ -1,9 +1,12 @@ #include #include -#include +#include +#include #include "streamlistensocket.h" #include "streamsocket.h" +using namespace std; + namespace Msp { namespace Net { @@ -14,35 +17,36 @@ StreamListenSocket::StreamListenSocket(Family af, int proto): int StreamListenSocket::connect(const SockAddr &) { - throw Exception("Can't connect a listen socket"); + // XXX This function needs to go away + throw logic_error("Can't connect a listen socket"); } void StreamListenSocket::listen(const SockAddr &addr, unsigned backlog) { bind(addr); - int err=::listen(handle, backlog); + int err = ::listen(handle, backlog); if(err==-1) - throw SystemError("Unable to listen", errno); + throw system_error("listen"); #ifdef WIN32 WSAEventSelect(handle, event, FD_ACCEPT); #endif set_events(IO::P_INPUT); - listening=true; + listening = true; } StreamSocket *StreamListenSocket::accept() { if(!listening) - throw InvalidState("Socket is not listening"); + throw bad_socket_state("not listening"); sockaddr_storage sa; - socklen_t size=sizeof(sockaddr_storage); - SocketHandle new_h=::accept(handle, reinterpret_cast(&sa), &size); + socklen_t size = sizeof(sockaddr_storage); + SocketHandle new_h = ::accept(handle, reinterpret_cast(&sa), &size); - RefPtr paddr=SockAddr::create(sa); + RefPtr paddr = SockAddr::create(sa); return new StreamSocket(new_h, *paddr); }