Ver Fonte

separate the bind & listen calls on the http backplane (#1988)

Grant Limberg há 2 anos atrás
pai
commit
6b5c9b1b8e
1 ficheiros alterados com 12 adições e 5 exclusões
  1. 12 5
      service/OneService.cpp

+ 12 - 5
service/OneService.cpp

@@ -1994,14 +1994,21 @@ public:
 			fprintf(stderr, "%s", http_log(req, res).c_str());
 		});
 #endif
+		if (_primaryPort==0) {
+			fprintf(stderr, "unable to determine local control port");
+			exit(-1);
+		}
+
+		if(!_controlPlane.bind_to_port("0.0.0.0", _primaryPort)) {
+			fprintf(stderr, "Error binding control plane to port %d\n", _primaryPort);
+			exit(-1);
+		}
 
         _serverThread = std::thread([&] {
-			if (_primaryPort==0) {
-				fprintf(stderr, "unable to determine local control port");
-				exit(-1);
-			}
             fprintf(stderr, "Starting Control Plane...\n");
-            _controlPlane.listen("0.0.0.0", _primaryPort);
+            if(!_controlPlane.listen_after_bind()) {
+				fprintf(stderr, "Error on listen_after_bind()\n");
+			}
             fprintf(stderr, "Control Plane Stopped\n");
         });