瀏覽代碼

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

Grant Limberg 2 年之前
父節點
當前提交
6b5c9b1b8e
共有 1 個文件被更改,包括 12 次插入5 次删除
  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");
         });