mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-18 10:59:45 +00:00
Fix #1801 - report ipv4 accepted address for ipv4 listeners
This commit is contained in:
1 parent
a8bef96463
commit
804a3bf380
3 files changed
+266
-9
No files matched your search
+4
-4
@@ -374,11 +374,11 @@ void mg_connect_resolved(struct mg_connection *c) {
|
||||
}
|
||||
|
||||
static MG_SOCKET_TYPE raccept(MG_SOCKET_TYPE sock, union usa *usa,
|
||||
socklen_t len) {
|
||||
socklen_t *len) {
|
||||
MG_SOCKET_TYPE s = MG_INVALID_SOCKET;
|
||||
do {
|
||||
memset(usa, 0, sizeof(*usa));
|
||||
s = accept(sock, &usa->sa, &len);
|
||||
s = accept(sock, &usa->sa, len);
|
||||
} while (s == MG_INVALID_SOCKET && errno == EINTR);
|
||||
return s;
|
||||
}
|
||||
@@ -387,7 +387,7 @@ static void accept_conn(struct mg_mgr *mgr, struct mg_connection *lsn) {
|
||||
struct mg_connection *c = NULL;
|
||||
union usa usa;
|
||||
socklen_t sa_len = sizeof(usa);
|
||||
MG_SOCKET_TYPE fd = raccept(FD(lsn), &usa, sa_len);
|
||||
MG_SOCKET_TYPE fd = raccept(FD(lsn), &usa, &sa_len);
|
||||
if (fd == MG_INVALID_SOCKET) {
|
||||
#if MG_ARCH == MG_ARCH_AZURERTOS
|
||||
// AzureRTOS, in non-block socket mode can mark listening socket readable
|
||||
@@ -455,7 +455,7 @@ static bool mg_socketpair(MG_SOCKET_TYPE sp[2], union usa usa[2], bool udp) {
|
||||
getsockname(sock, &usa[0].sa, &n) == 0 &&
|
||||
(sp[0] = socket(AF_INET, SOCK_STREAM, 0)) != MG_INVALID_SOCKET &&
|
||||
connect(sp[0], &usa[0].sa, n) == 0 &&
|
||||
(sp[1] = raccept(sock, &usa[1], n)) != MG_INVALID_SOCKET) {
|
||||
(sp[1] = raccept(sock, &usa[1], &n)) != MG_INVALID_SOCKET) {
|
||||
success = true;
|
||||
}
|
||||
if (success) {
|
||||
|
||||
Reference in new issue
Block a user