Make all project targets compile on Intel MacOS (#2780)

This commit is contained in:
Fabian Bergström
2023-07-01 19:30:11 +02:00
committed by GitHub
parent 98bb40d618
commit cf295952b6
14 changed files with 184 additions and 82 deletions
+15 -8
View File
@@ -42,19 +42,26 @@ bool XSocketServer::init_server() {
return false;
}
#ifdef OS_POSIX
int server_socket_opt = SO_REUSEADDR | SO_REUSEPORT;
#elif _WIN32
int server_socket_opt = SO_EXCLUSIVEADDRUSE;
#endif
int yes = 1;
int opt = 1;
if (set_socket_option(listening_socket, SOL_SOCKET, server_socket_opt, &opt, sizeof(opt)) < 0) {
#ifdef OS_POSIX
if (set_socket_option(listening_socket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)) < 0) {
close_server_socket();
return false;
}
// macOS doesn't support setting multiple options at once, so we have to do this separately.
if (set_socket_option(listening_socket, SOL_SOCKET, SO_REUSEPORT, &yes, sizeof(yes)) < 0) {
close_server_socket();
return false;
}
#elif _WIN32
if (set_socket_option(listening_socket, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, &yes, sizeof(yes)) < 0) {
close_server_socket();
return false;
};
#endif
if (set_socket_option(listening_socket, TCP_SOCKET_LEVEL, TCP_NODELAY, &opt, sizeof(opt)) < 0) {
if (set_socket_option(listening_socket, TCP_SOCKET_LEVEL, TCP_NODELAY, &yes, sizeof(yes)) < 0) {
close_server_socket();
return false;
}