]> git.mxchange.org Git - flightgear.git/commitdiff
FGProps: improve error messages
authorThorstenB <brehmt@gmail.com>
Fri, 21 Sep 2012 11:26:05 +0000 (13:26 +0200)
committerThorstenB <brehmt@gmail.com>
Fri, 21 Sep 2012 13:33:13 +0000 (15:33 +0200)
Lowlevel "simgear:NetChannel" only returns status infos, but doesn't
output log messages itself.

src/Network/props.cxx

index 8ea9596c52cba3e6daa1793eca8d41023cd199c0..436c2af73eb0adee77233262a75e2f276fb8ea9e 100644 (file)
@@ -552,7 +552,6 @@ FGProps::FGProps( const vector<string>& tokens )
     } else {
         throw FGProtocolConfigError( "FGProps: incorrect number of configuration arguments" );
     }
-    printf( "Property server started on port %d\n", port );
 }
 
 /**
@@ -575,9 +574,26 @@ FGProps::open()
         return false;
     }
 
-    simgear::NetChannel::open();
-    simgear::NetChannel::bind( "", port );
-    simgear::NetChannel::listen( 5 );
+    if (!simgear::NetChannel::open())
+    {
+        SG_LOG( SG_IO, SG_ALERT, "FGProps: Failed to open network socket.");
+        return false;
+    }
+
+    int err = simgear::NetChannel::bind( "", port );
+    if (err)
+    {
+        SG_LOG( SG_IO, SG_ALERT, "FGProps: Failed to open port #" << port << " - the port is already used (error " << err << ").");
+        return false;
+    }
+
+    err = simgear::NetChannel::listen( 5 );
+    if (err)
+    {
+        SG_LOG( SG_IO, SG_ALERT, "FGProps: Failed to listen on port #" << port << "(error " << err << ").");
+        return false;
+    }
+
     SG_LOG( SG_IO, SG_INFO, "Props server started on port " << port );
 
     set_enabled( true );