diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c index d7596b97ea2bbc464bf2cff2c9f8171ca9571277..6163bda959c2b0b0eebaf90776655bd9a9d1e016 100644 --- a/src/sbbs3/js_socket.c +++ b/src/sbbs3/js_socket.c @@ -140,8 +140,10 @@ static ptrdiff_t js_socket_recv(js_socket_private_t *p, void *buf, size_t len, i do_js_close(p); return -1; } + if(!socket_check(p->sock,NULL,NULL,0)) + break; } while(len); - return total; // Shouldn't happen... + return total; } static ptrdiff_t js_socket_sendsocket(js_socket_private_t *p, const void *msg, size_t len, int flush) @@ -169,9 +171,11 @@ static ptrdiff_t js_socket_sendsocket(js_socket_private_t *p, const void *msg, s if(flush) do_CryptFlush(p); return total; } + if(!socket_check(p->sock,NULL,NULL,0)) + break; } while(len); if(flush) do_CryptFlush(p); - return total; // shouldn't happen... + return total; } static int js_socket_sendfilesocket(js_socket_private_t *p, int file, off_t *offset, off_t count)