X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fserver.c;h=7f84e5aaffd5f5a68f402bacc055528986586d4b;hb=63561f9937d11b1371a2de2511b903035818b42f;hp=a726310d494e94f582338c8adcff490611228aa3;hpb=d80c70d36363762e0cf1534e654e122d741fbc5d;p=catta diff --git a/src/server.c b/src/server.c index a726310..7f84e5a 100644 --- a/src/server.c +++ b/src/server.c @@ -1381,12 +1381,14 @@ CattaServer *catta_server_new(const CattaPoll *poll_api, const CattaServerConfig else catta_server_config_init(&s->config); + winsock_init(); // on Windows, call WSAStartup; no-op on other platforms if ((e = setup_sockets(s)) < 0) { if (error) *error = e; catta_server_config_free(&s->config); catta_free(s); + winsock_exit(); return NULL; } @@ -1515,14 +1517,14 @@ void catta_server_free(CattaServer* s) { /* Free sockets */ if (s->fd_ipv4 >= 0) - close(s->fd_ipv4); + closesocket(s->fd_ipv4); if (s->fd_ipv6 >= 0) - close(s->fd_ipv6); + closesocket(s->fd_ipv6); if (s->fd_legacy_unicast_ipv4 >= 0) - close(s->fd_legacy_unicast_ipv4); + closesocket(s->fd_legacy_unicast_ipv4); if (s->fd_legacy_unicast_ipv6 >= 0) - close(s->fd_legacy_unicast_ipv6); + closesocket(s->fd_legacy_unicast_ipv6); /* Free other stuff */ @@ -1533,6 +1535,7 @@ void catta_server_free(CattaServer* s) { catta_server_config_free(&s->config); catta_free(s); + winsock_exit(); // on Windows, call WSACleanup(); no-op on other platforms } const char* catta_server_get_domain_name(CattaServer *s) {