Browse Source

Merge pull request #721 from paullouisageneau/fix-websocketserver-global-init

Fix TCP server created before global initialization
Paul-Louis Ageneau 2 years ago
parent
commit
b9d4c8b0ad
2 changed files with 7 additions and 4 deletions
  1. 6 2
      src/impl/websocketserver.cpp
  2. 1 2
      src/impl/websocketserver.hpp

+ 6 - 2
src/impl/websocketserver.cpp

@@ -30,10 +30,10 @@ using namespace std::placeholders;
 const string PemBeginCertificateTag = "-----BEGIN CERTIFICATE-----";
 const string PemBeginCertificateTag = "-----BEGIN CERTIFICATE-----";
 
 
 WebSocketServer::WebSocketServer(Configuration config_)
 WebSocketServer::WebSocketServer(Configuration config_)
-    : config(std::move(config_)), tcpServer(std::make_unique<TcpServer>(config.port)),
-      mStopped(false) {
+    : config(std::move(config_)), mStopped(false) {
 	PLOG_VERBOSE << "Creating WebSocketServer";
 	PLOG_VERBOSE << "Creating WebSocketServer";
 
 
+	// Create certificate
 	if (config.enableTls) {
 	if (config.enableTls) {
 		if (config.certificatePemFile && config.keyPemFile) {
 		if (config.certificatePemFile && config.keyPemFile) {
 			mCertificate = std::make_shared<Certificate>(
 			mCertificate = std::make_shared<Certificate>(
@@ -51,6 +51,10 @@ WebSocketServer::WebSocketServer(Configuration config_)
 		}
 		}
 	}
 	}
 
 
+	// Create TCP server
+	tcpServer = std::make_unique<TcpServer>(config.port);
+
+	// Create server thread
 	mThread = std::thread(&WebSocketServer::runLoop, this);
 	mThread = std::thread(&WebSocketServer::runLoop, this);
 }
 }
 
 

+ 1 - 2
src/impl/websocketserver.hpp

@@ -45,8 +45,7 @@ struct WebSocketServer final : public std::enable_shared_from_this<WebSocketServ
 	void stop();
 	void stop();
 
 
 	const Configuration config;
 	const Configuration config;
-	const unique_ptr<TcpServer> tcpServer;
-
+	unique_ptr<TcpServer> tcpServer;
 	synchronized_callback<shared_ptr<rtc::WebSocket>> clientCallback;
 	synchronized_callback<shared_ptr<rtc::WebSocket>> clientCallback;
 
 
 private:
 private: