interim update while working TcpServer
This commit is contained in:
		| @ -96,27 +96,18 @@ TcpServer::TcpServer (const SocketAddress& address): | ||||
|  | ||||
| TcpServer::~TcpServer () QSE_CPP_NOEXCEPT | ||||
| { | ||||
| 	// QSE_ASSERT (server_serving == false); | ||||
| 	// QSE_ASSERT (this->server_serving == false); | ||||
| 	this->delete_all_clients (); | ||||
| } | ||||
|  | ||||
| int TcpServer::start (int* err_code) QSE_CPP_NOEXCEPT | ||||
| int TcpServer::open_tcp_socket (Socket& socket, int* err_code) QSE_CPP_NOEXCEPT | ||||
| { | ||||
| 	return this->start(true, err_code); | ||||
| } | ||||
|  | ||||
| int TcpServer::open_tcp_socket (Socket& socket, bool winsock_inheritable, int* err_code) QSE_CPP_NOEXCEPT | ||||
| { | ||||
| 	if (socket.open(this->binding_address.getFamily(), QSE_SOCK_STREAM, 0) <= -1) | ||||
| 	if (socket.open(this->binding_address.getFamily(), QSE_SOCK_STREAM, Socket::T_CLOEXEC | Socket::T_NONBLOCK) <= -1) | ||||
| 	{ | ||||
| 		if (err_code) *err_code = ERR_OPEN; | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| #if defined(_WIN32) | ||||
| 	SetHandleInformation ((HANDLE)socket.handle(), HANDLE_FLAG_INHERIT, (winsock_inheritable? HANDLE_FLAG_INHERIT: 0)); | ||||
| #endif | ||||
|  | ||||
| 	//socket.setReuseAddr (true); | ||||
| 	//socket.setReusePort (true); | ||||
|  | ||||
| @ -136,7 +127,7 @@ int TcpServer::open_tcp_socket (Socket& socket, bool winsock_inheritable, int* e | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| int TcpServer::start (bool winsock_inheritable, int* err_code) QSE_CPP_NOEXCEPT | ||||
| int TcpServer::start (int* err_code) QSE_CPP_NOEXCEPT | ||||
| { | ||||
| 	this->server_serving = true; | ||||
| 	if (err_code != QSE_NULL) *err_code = ERR_NONE; | ||||
| @ -149,7 +140,7 @@ int TcpServer::start (bool winsock_inheritable, int* err_code) QSE_CPP_NOEXCEPT | ||||
| 	{ | ||||
| 		Socket socket; | ||||
|  | ||||
| 		if (this->open_tcp_socket(socket, winsock_inheritable, err_code) <= -1) | ||||
| 		if (this->open_tcp_socket(socket, err_code) <= -1) | ||||
| 		{ | ||||
| 			this->server_serving = false; | ||||
| 			this->setStopRequested (false); | ||||
| @ -204,7 +195,7 @@ int TcpServer::start (bool winsock_inheritable, int* err_code) QSE_CPP_NOEXCEPT | ||||
| 					socket.close (); | ||||
|  | ||||
| 				reopen: | ||||
| 					if (this->open_tcp_socket (socket, winsock_inheritable, err_code) <= -1) | ||||
| 					if (this->open_tcp_socket (socket, err_code) <= -1) | ||||
| 					{ | ||||
| 						if (reopen_count >= 100)  | ||||
| 						{ | ||||
|  | ||||
		Reference in New Issue
	
	Block a user