#ifndef USE_WINSOCK
log_err("can't create socket: %s", strerror(errno));
#else
- log_err("can't create socket: %s",
+ log_err("can't create socket: %s",
wsa_strerror(WSAGetLastError()));
#endif
return -1;
}
#ifdef SO_REUSEADDR
- if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void*)&on,
+ if(setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void*)&on,
(socklen_t)sizeof(on)) < 0) {
#ifndef USE_WINSOCK
log_err("setsockopt(.. SO_REUSEADDR ..) failed: %s",
&addr, len);
close(s);
#else
- log_err_addr("can't bind socket",
+ log_err_addr("can't bind socket",
wsa_strerror(WSAGetLastError()), &addr, len);
closesocket(s);
#endif
/** signal handler for user quit */
static RETSIGTYPE main_sigh(int sig)
{
- if(!sig_base) return;
verbose(VERB_ALGO, "exit on signal %d\n", sig);
- ub_event_base_loopexit(sig_base);
+ if(sig_base)
+ ub_event_base_loopexit(sig_base);
sig_quit = 1;
}
ub_event_base_dispatch(base);
+ sig_base = NULL;
tap_socket_list_delete(maindata->acceptlist);
ub_event_base_free(base);
free(maindata);