]> git.mxchange.org Git - simgear.git/blobdiff - simgear/io/sg_socket.cxx
Tweaks in preparation for the 0.3.6-pre1 release.
[simgear.git] / simgear / io / sg_socket.cxx
index 4ee0eba2e8a3ac863987cd80de4d18c5e776b01e..e642639acd5f334e05881ce48b190a217006154d 100644 (file)
@@ -42,7 +42,8 @@ SGSocket::SGSocket( const string& host, const string& port_,
     client(0),
     is_tcp(false),
     is_server(false),
-    first_read(false)
+    first_read(false),
+    timeout(0)
 {
     if (!init)
     {
@@ -218,7 +219,7 @@ SGSocket::read( char *buf, int length )
 
     if (result > 0)
     {
-       if (is_tcp)
+       if (is_tcp && is_server)
        {
             result = client->recv( buf, length );
         }
@@ -257,7 +258,7 @@ SGSocket::readline( char *buf, int length )
        // read a chunk, keep in the save buffer until we have the
        // requested amount read
 
-       if (is_tcp)
+       if (is_tcp && is_server)
        {
            char *buf_ptr = save_buf + save_len;
            result = client->recv( buf_ptr, SG_IO_MAX_MSG_SIZE - save_len );
@@ -330,7 +331,7 @@ SGSocket::write( const char *buf, const int length )
 
     if ( s->send( buf, length ) < 0 )
     {
-       SG_LOG( SG_IO, SG_ALERT, "Error writing to socket: " << port );
+       SG_LOG( SG_IO, SG_WARN, "Error writing to socket: " << port );
        error_condition = true;
     }
 
@@ -386,7 +387,7 @@ SGSocket::poll()
     netSocket* writers[1];
     writers[0] = 0;
 
-    int result = netSocket::select( readers, writers, 0 );
+    int result = netSocket::select( readers, writers, timeout );
 
     if (result > 0 && is_server && client == 0)
     {