mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-01-03 05:19:34 -05:00
- Merge PR #293: Add missing prototype. Also refactor to use the new
shorthand function to clean up the code.
This commit is contained in:
parent
01bfd3f207
commit
a6dc0743b4
14 changed files with 83 additions and 197 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -550,15 +550,9 @@ tcp_proxy_delete(struct tcp_proxy* p)
|
|||
free(s);
|
||||
s = sn;
|
||||
}
|
||||
#ifndef USE_WINSOCK
|
||||
close(p->client_s);
|
||||
sock_close(p->client_s);
|
||||
if(p->server_s != -1)
|
||||
close(p->server_s);
|
||||
#else
|
||||
closesocket(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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in a new issue