mirror of
https://github.com/cesanta/mongoose.git
synced 2025-07-31 09:56:16 +08:00
Fix #1354 - report correct errno in mg_open_listener()
This commit is contained in:
parent
1928ba9c1f
commit
f73ebbf689
@ -2973,6 +2973,7 @@ static void mg_set_non_blocking_mode(SOCKET fd) {
|
||||
|
||||
SOCKET mg_open_listener(const char *url, struct mg_addr *addr) {
|
||||
SOCKET fd = INVALID_SOCKET;
|
||||
int s_err = 0; // Memoized socket error, in case closesocket() overrides it
|
||||
memset(addr, 0, sizeof(*addr));
|
||||
addr->port = mg_htons(mg_url_port(url));
|
||||
if (!mg_aton(mg_url_host(url), addr)) {
|
||||
@ -3020,12 +3021,14 @@ SOCKET mg_open_listener(const char *url, struct mg_addr *addr) {
|
||||
}
|
||||
mg_set_non_blocking_mode(fd);
|
||||
} else if (fd != INVALID_SOCKET) {
|
||||
s_err = MG_SOCK_ERRNO;
|
||||
closesocket(fd);
|
||||
fd = INVALID_SOCKET;
|
||||
}
|
||||
}
|
||||
if (fd == INVALID_SOCKET) {
|
||||
LOG(LL_ERROR, ("Failed to listen on %s, errno %d", url, MG_SOCK_ERRNO));
|
||||
if (s_err = 0) s_err = MG_SOCK_ERRNO;
|
||||
LOG(LL_ERROR, ("Failed to listen on %s, errno %d", url, s_err));
|
||||
}
|
||||
|
||||
return fd;
|
||||
|
@ -127,6 +127,7 @@ static void mg_set_non_blocking_mode(SOCKET fd) {
|
||||
|
||||
SOCKET mg_open_listener(const char *url, struct mg_addr *addr) {
|
||||
SOCKET fd = INVALID_SOCKET;
|
||||
int s_err = 0; // Memoized socket error, in case closesocket() overrides it
|
||||
memset(addr, 0, sizeof(*addr));
|
||||
addr->port = mg_htons(mg_url_port(url));
|
||||
if (!mg_aton(mg_url_host(url), addr)) {
|
||||
@ -174,12 +175,14 @@ SOCKET mg_open_listener(const char *url, struct mg_addr *addr) {
|
||||
}
|
||||
mg_set_non_blocking_mode(fd);
|
||||
} else if (fd != INVALID_SOCKET) {
|
||||
s_err = MG_SOCK_ERRNO;
|
||||
closesocket(fd);
|
||||
fd = INVALID_SOCKET;
|
||||
}
|
||||
}
|
||||
if (fd == INVALID_SOCKET) {
|
||||
LOG(LL_ERROR, ("Failed to listen on %s, errno %d", url, MG_SOCK_ERRNO));
|
||||
if (s_err = 0) s_err = MG_SOCK_ERRNO;
|
||||
LOG(LL_ERROR, ("Failed to listen on %s, errno %d", url, s_err));
|
||||
}
|
||||
|
||||
return fd;
|
||||
|
Loading…
Reference in New Issue
Block a user