]> git.tdb.fi Git - libs/net.git/blobdiff - source/streamsocket.cpp
Header changes
[libs/net.git] / source / streamsocket.cpp
index 79b08f4d91541854817d75f5f975f50444a21746..2576009452bddcb9df8ee22898c42ce612fcc171 100644 (file)
@@ -3,15 +3,12 @@
 #endif
 #include <cerrno>
 #include <msp/io/poll.h>
-#include <msp/strings/formatter.h>
+#include <msp/strings/format.h>
 #include "streamsocket.h"
 
 namespace Msp {
 namespace Net {
 
-/**
-Used by StreamListenSocket to construct a new socket from accept.
-*/
 StreamSocket::StreamSocket(SocketHandle h, const SockAddr &paddr):
        Socket(h, paddr),
        connecting(false)
@@ -22,27 +19,18 @@ StreamSocket::StreamSocket(SocketHandle h, const SockAddr &paddr):
        set_events(IO::P_INPUT);
 }
 
-/**
-Constructs a new StreamSocket.
-*/
 StreamSocket::StreamSocket(Family af, int proto):
        Socket(af, SOCK_STREAM, proto),
        connecting(false)
 { }
 
-/**
-Checks the status of an ongoing connection attempt.  If the connection fails
-with an error, an exception is thrown.
-
-@return  0 if the connection finished, 1 if not
-*/
 int StreamSocket::poll_connect(const Time::TimeDelta &timeout)
 {
        check_state(false);
        if(!connecting)
                throw InvalidState("No connection attempt going on");
 
-       int res=poll(*this, IO::P_OUTPUT, timeout);
+       int res = poll(*this, IO::P_OUTPUT, timeout);
        if(res==-1)
 #ifdef WIN32
                throw Exception(format("Connection polling failed: %d", WSAGetLastError()));
@@ -51,10 +39,10 @@ int StreamSocket::poll_connect(const Time::TimeDelta &timeout)
 #endif
        else if(res>0)
        {
-               connecting=false;
+               connecting = false;
 
                int err;
-               socklen_t len=sizeof(int);
+               socklen_t len = sizeof(int);
                get_option(SOL_SOCKET, SO_ERROR, &err, &len);
 
                if(err!=0)
@@ -72,7 +60,7 @@ int StreamSocket::poll_connect(const Time::TimeDelta &timeout)
 #endif
                set_events(IO::P_INPUT);
 
-               connected=true;
+               connected = true;
 
                return 0;
        }
@@ -80,14 +68,6 @@ int StreamSocket::poll_connect(const Time::TimeDelta &timeout)
        return 1;
 }
 
-/**
-Connects the socket to a remote address.  In non-blocking mode, this function
-may return before the connection is finished.  The caller must then use either
-the poll_connect function or an EventDispatcher to determine when the
-connection is finished.
-
-@return  0 if the connection finished, 1 if it is in progress
-*/
 int StreamSocket::connect(const SockAddr &addr)
 {
        check_state(false);
@@ -96,16 +76,16 @@ int StreamSocket::connect(const SockAddr &addr)
                throw InvalidState("Socket is already connected");
 
        sockaddr_storage sa;
-       socklen_t size=addr.fill_sockaddr(sa);
+       socklen_t size = addr.fill_sockaddr(sa);
 
 #ifdef WIN32
-       int err=WSAConnect(handle, reinterpret_cast<sockaddr *>(&sa), size, 0, 0, 0, 0);
+       int err = WSAConnect(handle, reinterpret_cast<sockaddr *>(&sa), size, 0, 0, 0, 0);
        if(err==SOCKET_ERROR)
        {
-               int err_code=WSAGetLastError();
+               int err_code = WSAGetLastError();
                if(err_code==WSAEWOULDBLOCK)
                {
-                       connecting=true;
+                       connecting = true;
                        WSAEventSelect(handle, event, FD_CONNECT);
                        set_events(IO::P_OUTPUT);
                }
@@ -113,12 +93,12 @@ int StreamSocket::connect(const SockAddr &addr)
                        throw Exception(format("Unable to connect: %d", err_code));
        }
 #else
-       int err=::connect(handle, reinterpret_cast<sockaddr *>(&sa), size);
+       int err = ::connect(handle, reinterpret_cast<sockaddr *>(&sa), size);
        if(err==-1)
        {
                if(errno==EINPROGRESS)
                {
-                       connecting=true;
+                       connecting = true;
                        set_events(IO::P_OUTPUT);
                }
                else
@@ -127,16 +107,16 @@ int StreamSocket::connect(const SockAddr &addr)
 #endif
 
        delete peer_addr;
-       peer_addr=addr.copy();
+       peer_addr = addr.copy();
 
        delete local_addr;
-       size=sizeof(sockaddr_storage);
+       size = sizeof(sockaddr_storage);
        getsockname(handle, reinterpret_cast<sockaddr *>(&sa), &size);
-       local_addr=SockAddr::create(sa);
+       local_addr = SockAddr::create(sa);
 
        if(err==0)
        {
-               connected=true;
+               connected = true;
                set_events(IO::P_INPUT);
                signal_connect_finished.emit(0);
        }
@@ -146,21 +126,20 @@ int StreamSocket::connect(const SockAddr &addr)
 
 void StreamSocket::on_event(IO::PollEvent ev)
 {
-       //cout<<"StreamSocket::on_event "<<ev<<'\n';
        if((ev&(IO::P_OUTPUT|IO::P_ERROR)) && connecting)
        {
                int err;
-               socklen_t len=sizeof(err);
+               socklen_t len = sizeof(err);
                get_option(SOL_SOCKET, SO_ERROR, &err, &len);
 
-               connecting=false;
-               connected=(err==0);
+               connecting = false;
+               connected = (err==0);
                signal_connect_finished.emit(err);
 
                if(err!=0)
                {
                        delete peer_addr;
-                       peer_addr=0;
+                       peer_addr = 0;
                }
 
 #ifdef WIN32