mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-18 10:59:45 +00:00
Fix Windows returning IO_RESET
This commit is contained in:
1 parent
4bbb5008b1
commit
d59f84fbbc
3 files changed
+41
-41
No files matched your search
+3
-3
@@ -128,7 +128,7 @@ long mg_io_send(struct mg_connection *c, const void *buf, size_t len) {
|
||||
}
|
||||
MG_VERBOSE(("%lu %ld %d", c->id, n, MG_SOCK_ERR(n)));
|
||||
if (MG_SOCK_PENDING(n)) return MG_IO_WAIT;
|
||||
if (MG_SOCK_RESET(n)) return MG_IO_RESET;
|
||||
if (MG_SOCK_RESET(n)) return MG_IO_RESET; // MbedTLS, see #1507
|
||||
if (n <= 0) return MG_IO_ERR;
|
||||
return n;
|
||||
}
|
||||
@@ -250,7 +250,7 @@ static long recv_raw(struct mg_connection *c, void *buf, size_t len) {
|
||||
}
|
||||
MG_VERBOSE(("%lu %ld %d", c->id, n, MG_SOCK_ERR(n)));
|
||||
if (MG_SOCK_PENDING(n)) return MG_IO_WAIT;
|
||||
if (MG_SOCK_RESET(n)) return MG_IO_RESET;
|
||||
if (MG_SOCK_RESET(n)) return MG_IO_RESET; // MbedTLS, see #1507
|
||||
if (n <= 0) return MG_IO_ERR;
|
||||
return n;
|
||||
}
|
||||
@@ -287,7 +287,7 @@ static void read_conn(struct mg_connection *c) {
|
||||
}
|
||||
// there can still be > 16K from last iteration, always mg_tls_recv()
|
||||
m = c->is_tls_hs ? (long) MG_IO_WAIT : mg_tls_recv(c, buf, len);
|
||||
if (n == MG_IO_ERR) {
|
||||
if (n == MG_IO_ERR || n == MG_IO_RESET) { // Windows, see #3031
|
||||
if (c->rtls.len == 0 || m < 0) {
|
||||
// Close only when we have fully drained both rtls and TLS buffers
|
||||
c->is_closing = 1; // or there's nothing we can do about it.
|
||||
|
||||
Reference in new issue
Block a user