diff options
Diffstat (limited to 'source/net_common.c')
-rw-r--r-- | source/net_common.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/source/net_common.c b/source/net_common.c index 96f57c6..a22ad00 100644 --- a/source/net_common.c +++ b/source/net_common.c @@ -927,12 +927,9 @@ neterr_t NET_Connect( const netadr_t *peer, netstream_t *s ) { closesocket( socket ); return NET_ERROR; } - - s->state = NS_CONNECTING; - } else { - s->state = NS_CONNECTED; } + s->state = NS_CONNECTING; s->address = *peer; s->socket = socket; @@ -945,10 +942,10 @@ neterr_t NET_Run( netstream_t *s ) { int ret, err; int length; byte *data; - neterr_t result; + neterr_t result = NET_AGAIN; if( s->state < NS_CONNECTING || s->state > NS_CONNECTED ) { - return NET_AGAIN; + return result; } tv.tv_sec = 0; @@ -965,14 +962,15 @@ neterr_t NET_Run( netstream_t *s ) { } if( !ret ) { - return NET_AGAIN; + return result; } + result = NET_AGAIN; if( s->state == NS_CONNECTING ) { socklen_t length; if( !FD_ISSET( s->socket, &wfd ) && !FD_ISSET( s->socket, &efd ) ) { - return NET_AGAIN; + return result; } length = sizeof( err ); @@ -989,9 +987,9 @@ neterr_t NET_Run( netstream_t *s ) { } s->state = NS_CONNECTED; + result = NET_OK; } - result = NET_AGAIN; if( FD_ISSET( s->socket, &rfd ) ) { // read as much as we can data = FIFO_Reserve( &s->recv, &length ); |