]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Merge PR #293: Add missing prototype. Also refactor to use the new
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Mon, 31 Aug 2020 06:41:34 +0000 (08:41 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Mon, 31 Aug 2020 06:41:34 +0000 (08:41 +0200)
  shorthand function to clean up the code.

14 files changed:
daemon/remote.c
dnstap/dtstream.c
dnstap/unbound-dnstap-socket.c
doc/Changelog
services/listen_dnsport.c
services/listen_dnsport.h
services/outside_network.c
smallapp/unbound-control.c
testcode/delayer.c
testcode/perf.c
testcode/streamtcp.c
util/net_help.c
util/net_help.h
util/netevent.c

index aa263d074c64cf999d4069e736435c89f12a01c9..94bc2c57e23277b58acb78d92b10eb5d851305d7 100644 (file)
@@ -348,11 +348,7 @@ add_open(const char* ip, int nr, struct listen_port** list, int noproto_is_err,
        /* alloc */
        n = (struct listen_port*)calloc(1, sizeof(*n));
        if(!n) {
-#ifndef USE_WINSOCK
-               close(fd);
-#else
-               closesocket(fd);
-#endif
+               sock_close(fd);
                log_err("out of memory");
                return 0;
        }
@@ -461,11 +457,7 @@ int remote_accept_callback(struct comm_point* c, void* arg, int err,
        if(rc->active >= rc->max_active) {
                log_warn("drop incoming remote control: too many connections");
        close_exit:
-#ifndef USE_WINSOCK
-               close(newfd);
-#else
-               closesocket(newfd);
-#endif
+               sock_close(newfd);
                return 0;
        }
 
index 63d517cb896707ea2f9617bdaba6968c6b7acf62..26eac063a505dd649672dd5d5403e751389dff18 100644 (file)
@@ -588,11 +588,7 @@ static void dtio_del_output_event(struct dt_io_thread* dtio)
 /** close dtio socket and set it to -1 */
 static void dtio_close_fd(struct dt_io_thread* dtio)
 {
-#ifndef USE_WINSOCK
-       close(dtio->fd);
-#else
-       closesocket(dtio->fd);
-#endif
+       sock_close(dtio->fd);
        dtio->fd = -1;
 }
 
index 44a0eda95994d251f1aac7b58f5d0c0eadb7e53b..80a117617ad55008a271d3721f127c695c25e2a4 100644 (file)
@@ -292,12 +292,11 @@ static int make_tcp_accept(char* ip)
 #ifndef USE_WINSOCK
                log_err("setsockopt(.. SO_REUSEADDR ..) failed: %s",
                        strerror(errno));
-               close(s);
 #else
                log_err("setsockopt(.. SO_REUSEADDR ..) failed: %s",
                        wsa_strerror(WSAGetLastError()));
-               closesocket(s);
 #endif
+               sock_close(s);
                return -1;
        }
 #endif /* SO_REUSEADDR */
@@ -305,30 +304,24 @@ static int make_tcp_accept(char* ip)
 #ifndef USE_WINSOCK
                log_err_addr("can't bind socket", strerror(errno),
                        &addr, len);
-               close(s);
 #else
                log_err_addr("can't bind socket",
                        wsa_strerror(WSAGetLastError()), &addr, len);
-               closesocket(s);
 #endif
+               sock_close(s);
                return -1;
        }
        if(!fd_set_nonblock(s)) {
-#ifndef USE_WINSOCK
-               close(s);
-#else
-               closesocket(s);
-#endif
+               sock_close(s);
                return -1;
        }
        if(listen(s, LISTEN_BACKLOG) == -1) {
 #ifndef USE_WINSOCK
                log_err("can't listen: %s", strerror(errno));
-               close(s);
 #else
                log_err("can't listen: %s", wsa_strerror(WSAGetLastError()));
-               closesocket(s);
 #endif
+               sock_close(s);
                return -1;
        }
        return s;
index 10ab6efaea284ae97e9c1f69f58eb12e146e9d78..a7a95464a9fcbcb47a42680a0279f688a5ef1ab6 100644 (file)
@@ -1,3 +1,7 @@
+31 August 2020: Wouter
+       - Merge PR #293: Add missing prototype.  Also refactor to use the new
+         shorthand function to clean up the code.
+
 27 August 2020: Wouter
        - Similar to NSD PR#113, implement that interface names can be used,
          eg. something like interface: eth0 is resolved at server start and
index 51fe39e0f8629061ab877596d8a80876a6df8fe9..e749147e5761efd55a6201c1454533c14e262bd3 100644 (file)
@@ -356,13 +356,12 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
 #    ifndef USE_WINSOCK
                                log_err("setsockopt(..., SO_RCVBUFFORCE, "
                                        "...) failed: %s", strerror(errno));
-                               close(s);
 #    else
                                log_err("setsockopt(..., SO_RCVBUFFORCE, "
                                        "...) failed: %s", 
                                        wsa_strerror(WSAGetLastError()));
-                               closesocket(s);
 #    endif
+                               sock_close(s);
                                *noproto = 0;
                                *inuse = 0;
                                return -1;
@@ -373,13 +372,12 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
 #  ifndef USE_WINSOCK
                                log_err("setsockopt(..., SO_RCVBUF, "
                                        "...) failed: %s", strerror(errno));
-                               close(s);
 #  else
                                log_err("setsockopt(..., SO_RCVBUF, "
                                        "...) failed: %s", 
                                        wsa_strerror(WSAGetLastError()));
-                               closesocket(s);
 #  endif
+                               sock_close(s);
                                *noproto = 0;
                                *inuse = 0;
                                return -1;
@@ -415,13 +413,12 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
 #    ifndef USE_WINSOCK
                                log_err("setsockopt(..., SO_SNDBUFFORCE, "
                                        "...) failed: %s", strerror(errno));
-                               close(s);
 #    else
                                log_err("setsockopt(..., SO_SNDBUFFORCE, "
                                        "...) failed: %s", 
                                        wsa_strerror(WSAGetLastError()));
-                               closesocket(s);
 #    endif
+                               sock_close(s);
                                *noproto = 0;
                                *inuse = 0;
                                return -1;
@@ -432,13 +429,12 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
 #  ifndef USE_WINSOCK
                                log_err("setsockopt(..., SO_SNDBUF, "
                                        "...) failed: %s", strerror(errno));
-                               close(s);
 #  else
                                log_err("setsockopt(..., SO_SNDBUF, "
                                        "...) failed: %s", 
                                        wsa_strerror(WSAGetLastError()));
-                               closesocket(s);
 #  endif
+                               sock_close(s);
                                *noproto = 0;
                                *inuse = 0;
                                return -1;
@@ -471,13 +467,12 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
 #ifndef USE_WINSOCK
                                log_err("setsockopt(..., IPV6_V6ONLY"
                                        ", ...) failed: %s", strerror(errno));
-                               close(s);
 #else
                                log_err("setsockopt(..., IPV6_V6ONLY"
                                        ", ...) failed: %s", 
                                        wsa_strerror(WSAGetLastError()));
-                               closesocket(s);
 #endif
+                               sock_close(s);
                                *noproto = 0;
                                *inuse = 0;
                                return -1;
@@ -498,13 +493,12 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
 #  ifndef USE_WINSOCK
                        log_err("setsockopt(..., IPV6_USE_MIN_MTU, "
                                "...) failed: %s", strerror(errno));
-                       close(s);
 #  else
                        log_err("setsockopt(..., IPV6_USE_MIN_MTU, "
                                "...) failed: %s", 
                                wsa_strerror(WSAGetLastError()));
-                       closesocket(s);
 #  endif
+                       sock_close(s);
                        *noproto = 0;
                        *inuse = 0;
                        return -1;
@@ -520,12 +514,11 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
 #  ifndef USE_WINSOCK
                        log_err("setsockopt(..., IPV6_MTU, ...) failed: %s", 
                                strerror(errno));
-                       close(s);
 #  else
                        log_err("setsockopt(..., IPV6_MTU, ...) failed: %s", 
                                wsa_strerror(WSAGetLastError()));
-                       closesocket(s);
 #  endif
+                       sock_close(s);
                        *noproto = 0;
                        *inuse = 0;
                        return -1;
@@ -549,12 +542,7 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                        if (errno != EINVAL) {
                                log_err("setsockopt(..., IP_MTU_DISCOVER, IP_PMTUDISC_OMIT...) failed: %s",
                                        strerror(errno));
-
-#    ifndef USE_WINSOCK
-                               close(s);
-#    else
-                               closesocket(s);
-#    endif
+                               sock_close(s);
                                *noproto = 0;
                                *inuse = 0;
                                return -1;
@@ -571,11 +559,7 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                                &action, (socklen_t)sizeof(action)) < 0) {
                                log_err("setsockopt(..., IP_MTU_DISCOVER, IP_PMTUDISC_DONT...) failed: %s",
                                        strerror(errno));
-#    ifndef USE_WINSOCK
-                               close(s);
-#    else
-                               closesocket(s);
-#    endif
+                               sock_close(s);
                                *noproto = 0;
                                *inuse = 0;
                                return -1;
@@ -587,11 +571,7 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                        &off, (socklen_t)sizeof(off)) < 0) {
                        log_err("setsockopt(..., IP_DONTFRAG, ...) failed: %s",
                                strerror(errno));
-#    ifndef USE_WINSOCK
-                       close(s);
-#    else
-                       closesocket(s);
-#    endif
+                       sock_close(s);
                        *noproto = 0;
                        *inuse = 0;
                        return -1;
@@ -621,7 +601,6 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                                (struct sockaddr_storage*)addr, addrlen);
                }
 #endif /* EADDRINUSE */
-               close(s);
 #else /* USE_WINSOCK */
                if(WSAGetLastError() != WSAEADDRINUSE &&
                        WSAGetLastError() != WSAEADDRNOTAVAIL &&
@@ -630,18 +609,14 @@ create_udp_sock(int family, int socktype, struct sockaddr* addr,
                                wsa_strerror(WSAGetLastError()),
                                (struct sockaddr_storage*)addr, addrlen);
                }
-               closesocket(s);
 #endif /* USE_WINSOCK */
+               sock_close(s);
                return -1;
        }
        if(!fd_set_nonblock(s)) {
                *noproto = 0;
                *inuse = 0;
-#ifndef USE_WINSOCK
-               close(s);
-#else
-               closesocket(s);
-#endif
+               sock_close(s);
                return -1;
        }
        return s;
@@ -727,12 +702,11 @@ create_tcp_accept_sock(struct addrinfo *addr, int v6only, int* noproto,
 #ifndef USE_WINSOCK
                log_err("setsockopt(.. SO_REUSEADDR ..) failed: %s",
                        strerror(errno));
-               close(s);
 #else
                log_err("setsockopt(.. SO_REUSEADDR ..) failed: %s",
                        wsa_strerror(WSAGetLastError()));
-               closesocket(s);
 #endif
+               sock_close(s);
                return -1;
        }
 #endif /* SO_REUSEADDR */
@@ -770,12 +744,11 @@ create_tcp_accept_sock(struct addrinfo *addr, int v6only, int* noproto,
 #ifndef USE_WINSOCK
                        log_err("setsockopt(..., IPV6_V6ONLY, ...) failed: %s",
                                strerror(errno));
-                       close(s);
 #else
                        log_err("setsockopt(..., IPV6_V6ONLY, ...) failed: %s",
                                wsa_strerror(WSAGetLastError()));
-                       closesocket(s);
 #endif
+                       sock_close(s);
                        return -1;
                }
        }
@@ -822,32 +795,26 @@ create_tcp_accept_sock(struct addrinfo *addr, int v6only, int* noproto,
                                (struct sockaddr_storage*)addr->ai_addr,
                                addr->ai_addrlen);
                }
-               close(s);
 #else
                log_err_addr("can't bind socket", 
                        wsa_strerror(WSAGetLastError()),
                        (struct sockaddr_storage*)addr->ai_addr,
                        addr->ai_addrlen);
-               closesocket(s);
 #endif
+               sock_close(s);
                return -1;
        }
        if(!fd_set_nonblock(s)) {
-#ifndef USE_WINSOCK
-               close(s);
-#else
-               closesocket(s);
-#endif
+               sock_close(s);
                return -1;
        }
        if(listen(s, TCP_BACKLOG) == -1) {
 #ifndef USE_WINSOCK
                log_err("can't listen: %s", strerror(errno));
-               close(s);
 #else
                log_err("can't listen: %s", wsa_strerror(WSAGetLastError()));
-               closesocket(s);
 #endif
+               sock_close(s);
                return -1;
        }
 #ifdef USE_TCP_FASTOPEN
@@ -902,34 +869,6 @@ set_ip_dscp(int socket, int addrfamily, int dscp)
        return NULL;
 }
 
-#  ifndef USE_WINSOCK
-char*
-sock_strerror(int errn)
-{
-       return strerror(errn);
-}
-
-void
-sock_close(int socket)
-{
-       close(socket);
-}
-
-#  else
-char*
-sock_strerror(int ATTR_UNUSED(errn))
-{
-       return wsa_strerror(WSAGetLastError());
-}
-
-void
-sock_close(int socket)
-{
-       closesocket(socket);
-}
-
-#  endif /* USE_WINSOCK */
-
 int
 create_local_accept_sock(const char *path, int* noproto, int use_systemd)
 {
@@ -990,11 +929,7 @@ create_local_accept_sock(const char *path, int* noproto, int use_systemd)
        return s;
 
 err:
-#ifndef USE_WINSOCK
-       close(s);
-#else
-       closesocket(s);
-#endif
+       sock_close(s);
        return -1;
 
 #ifdef HAVE_SYSTEMD
@@ -1245,20 +1180,12 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                }
                /* getting source addr packet info is highly non-portable */
                if(!set_recvpktinfo(s, hints->ai_family)) {
-#ifndef USE_WINSOCK
-                       close(s);
-#else
-                       closesocket(s);
-#endif
+                       sock_close(s);
                        return 0;
                }
                if(!port_insert(list, s,
                   is_dnscrypt?listen_type_udpancil_dnscrypt:listen_type_udpancil)) {
-#ifndef USE_WINSOCK
-                       close(s);
-#else
-                       closesocket(s);
-#endif
+                       sock_close(s);
                        return 0;
                }
        } else if(do_udp) {
@@ -1274,11 +1201,7 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                }
                if(!port_insert(list, s,
                   is_dnscrypt?listen_type_udp_dnscrypt:listen_type_udp)) {
-#ifndef USE_WINSOCK
-                       close(s);
-#else
-                       closesocket(s);
-#endif
+                       sock_close(s);
                        return 0;
                }
        }
@@ -1298,11 +1221,7 @@ ports_create_if(const char* ifname, int do_auto, int do_udp, int do_tcp,
                        verbose(VERB_ALGO, "setup TCP for SSL service");
                if(!port_insert(list, s, is_ssl?listen_type_ssl:
                        (is_dnscrypt?listen_type_tcp_dnscrypt:listen_type_tcp))) {
-#ifndef USE_WINSOCK
-                       close(s);
-#else
-                       closesocket(s);
-#endif
+                       sock_close(s);
                        return 0;
                }
        }
@@ -1700,11 +1619,7 @@ void listening_ports_free(struct listen_port* list)
        while(list) {
                nx = list->next;
                if(list->fd != -1) {
-#ifndef USE_WINSOCK
-                       close(list->fd);
-#else
-                       closesocket(list->fd);
-#endif
+                       sock_close(list->fd);
                }
                free(list);
                list = nx;
index d33a5395ffaa4ea8bd2d479badbbc5b13fc53dc2..c7daa9e75903eefd1bce58a17915f1ae92edac83 100644 (file)
@@ -383,7 +383,5 @@ int tcp_req_info_handle_read_close(struct tcp_req_info* req);
 size_t tcp_req_info_get_stream_buffer_size(void);
 
 char* set_ip_dscp(int socket, int addrfamily, int ds);
-char* sock_strerror(int errn);
-void sock_close(int socket);
 
 #endif /* LISTEN_DNSPORT_H */
index 67eca05ed7ba55c515ed82e54cf284d1fddcc3d9..ba07444dfa9b3091324d9d7f1acabf9402f85249 100644 (file)
@@ -166,11 +166,7 @@ pick_outgoing_tcp(struct waiting_tcp* w, int s)
        if(num == 0) {
                log_err("no TCP outgoing interfaces of family");
                log_addr(VERB_OPS, "for addr", &w->addr, w->addrlen);
-#ifndef USE_WINSOCK
-               close(s);
-#else
-               closesocket(s);
-#endif
+               sock_close(s);
                return 0;
        }
 #ifdef INET6
@@ -191,12 +187,11 @@ pick_outgoing_tcp(struct waiting_tcp* w, int s)
        if(bind(s, (struct sockaddr*)&pi->addr, pi->addrlen) != 0) {
 #ifndef USE_WINSOCK
                log_err("outgoing tcp: bind: %s", strerror(errno));
-               close(s);
 #else
                log_err("outgoing tcp: bind: %s", 
                        wsa_strerror(WSAGetLastError()));
-               closesocket(s);
 #endif
+               sock_close(s);
                return 0;
        }
        log_addr(VERB_ALGO, "tcp bound to src", &pi->addr, pi->addrlen);
index 4662c7cb6158d9a774eda6a46a2bbbf3d714885d..5936679e69b7b353b02d73d0ae03da4df75039f8 100644 (file)
@@ -824,11 +824,7 @@ go(const char* cfgfile, char* svr, int quiet, int argc, char* argv[])
        ret = go_cmd(ssl, fd, quiet, argc, argv);
 
        if(ssl) SSL_free(ssl);
-#ifndef USE_WINSOCK
-       close(fd);
-#else
-       closesocket(fd);
-#endif
+       sock_close(fd);
        if(ctx) SSL_CTX_free(ctx);
        config_delete(cfg);
        return ret;
index ebf883926cba60e82fb0da04aebb00ea17301e19..6562f80e6a9550ab760284e14369d3c309ed5144 100644 (file)
@@ -550,15 +550,9 @@ tcp_proxy_delete(struct tcp_proxy* p)
                free(s);
                s = sn;
        }
-#ifndef USE_WINSOCK
-       close(p->client_s);
-       if(p->server_s != -1)
-               close(p->server_s);
-#else
-       closesocket(p->client_s);
+       sock_close(p->client_s);
        if(p->server_s != -1)
-               closesocket(p->server_s);
-#endif
+               sock_close(p->server_s);
        free(p);
 }
 
@@ -607,16 +601,14 @@ service_tcp_listen(int s, fd_set* rorig, int* max, struct tcp_proxy** proxies,
 #ifndef USE_WINSOCK
                if(errno != EINPROGRESS) {
                        log_err("tcp connect: %s", strerror(errno));
-                       close(p->server_s);
-                       close(p->client_s);
 #else
                if(WSAGetLastError() != WSAEWOULDBLOCK &&
                        WSAGetLastError() != WSAEINPROGRESS) {
                        log_err("tcp connect: %s", 
                                wsa_strerror(WSAGetLastError()));
-                       closesocket(p->server_s);
-                       closesocket(p->client_s);
 #endif
+                       sock_close(p->server_s);
+                       sock_close(p->client_s);
                        free(p);
                        return;
                }
@@ -769,11 +761,7 @@ service_tcp_relay(struct tcp_proxy** tcp_proxies, struct timeval* now,
                        log_addr(1, "read tcp answer", &p->addr, p->addr_len);
                        if(!tcp_relay_read(p->server_s, &p->answerlist, 
                                &p->answerlast, now, delay, pkt)) {
-#ifndef USE_WINSOCK
-                               close(p->server_s);
-#else
-                               closesocket(p->server_s);
-#endif
+                               sock_close(p->server_s);
                                FD_CLR(FD_SET_T p->server_s, worig);
                                FD_CLR(FD_SET_T p->server_s, rorig);
                                p->server_s = -1;
@@ -901,11 +889,7 @@ proxy_list_clear(struct proxy* p)
                        "%u returned\n", i++, from, port, (int)p->numreuse+1,
                        (unsigned)p->numwait, (unsigned)p->numsent, 
                        (unsigned)p->numreturn);
-#ifndef USE_WINSOCK
-               close(p->s);
-#else
-               closesocket(p->s);
-#endif
+               sock_close(p->s);
                free(p);
                p = np;
        }
@@ -1109,13 +1093,8 @@ service(const char* bind_str, int bindport, const char* serv_str,
 
        /* cleanup */
        verbose(1, "cleanup");
-#ifndef USE_WINSOCK
-       close(s);
-       close(listen_s);
-#else
-       closesocket(s);
-       closesocket(listen_s);
-#endif
+       sock_close(s);
+       sock_close(listen_s);
        sldns_buffer_free(pkt);
        ring_delete(ring);
 }
index 5b170ca57379d60a7fe9377624a99648af752a58..aef69045fc34c41ad3a15770d566361a5ddc64a0 100644 (file)
@@ -260,11 +260,7 @@ perffree(struct perfinfo* info)
        if(!info) return;
        if(info->io) {
                for(i=0; i<info->io_num; i++) {
-#ifndef USE_WINSOCK
-                       close(info->io[i].fd);
-#else
-                       closesocket(info->io[i].fd);
-#endif
+                       sock_close(info->io[i].fd);
                }
                free(info->io);
        }
index c49159d33a58b1421e7be92b6ed87b51c2b6700d..ffdddbe9db48380805af1cbef8d550f56758a471 100644 (file)
@@ -388,11 +388,7 @@ send_em(const char* svr, int udp, int usessl, int noanswer, int onarrival,
                SSL_free(ssl);
                SSL_CTX_free(ctx);
        }
-#ifndef USE_WINSOCK
-       close(fd);
-#else
-       closesocket(fd);
-#endif
+       sock_close(fd);
        sldns_buffer_free(buf);
        printf("orderly exit\n");
 }
index 4d985b66dcb12ba5fe02469cd925b1d669e168cc..b51e0372e393647b271b442b94e9267fd9de54eb 100644 (file)
@@ -1562,3 +1562,31 @@ listen_sslctx_delete_ticket_keys(void)
        free(ticket_keys);
        ticket_keys = NULL;
 }
+
+#  ifndef USE_WINSOCK
+char*
+sock_strerror(int errn)
+{
+       return strerror(errn);
+}
+
+void
+sock_close(int socket)
+{
+       close(socket);
+}
+
+#  else
+char*
+sock_strerror(int ATTR_UNUSED(errn))
+{
+       return wsa_strerror(WSAGetLastError());
+}
+
+void
+sock_close(int socket)
+{
+       closesocket(socket);
+}
+
+#  endif /* USE_WINSOCK */
index 29943ada090fe8b6f7e6f8e956cab238d4e58a21..45b607a430d5a3893054a1cd6c8e8426ff92f115 100644 (file)
@@ -496,4 +496,10 @@ void listen_sslctx_delete_ticket_keys(void);
  */
 int netblockdnametoaddr(uint8_t* dname, size_t dnamelen,
        struct sockaddr_storage* addr, socklen_t* addrlen, int* net, int* af);
+
+/** Return strerror or wsastrerror for socket error printout */
+char* sock_strerror(int errn);
+/** close the socket with close, or wsa closesocket */
+void sock_close(int socket);
+
 #endif /* NET_HELP_H */
index 3e7a433e50214eea5d47d2be2838de3b4ba93135..6172adb1f7e11b4434cdabd7c2e861a7e91bb619 100644 (file)
@@ -3087,11 +3087,7 @@ comm_point_close(struct comm_point* c)
                        ub_winsock_tcp_wouldblock(c->ev->ev, UB_EV_WRITE);
                }
                verbose(VERB_ALGO, "close fd %d", c->fd);
-#ifndef USE_WINSOCK
-               close(c->fd);
-#else
-               closesocket(c->fd);
-#endif
+               sock_close(c->fd);
        }
        c->fd = -1;
 }
@@ -3232,11 +3228,7 @@ comm_point_start_listening(struct comm_point* c, int newfd, int msec)
        }
        if(newfd != -1) {
                if(c->fd != -1) {
-#ifndef USE_WINSOCK
-                       close(c->fd);
-#else
-                       closesocket(c->fd);
-#endif
+                       sock_close(c->fd);
                }
                c->fd = newfd;
                ub_event_set_fd(c->ev->ev, c->fd);