diff --git a/src/sbbs3/js_socket.c b/src/sbbs3/js_socket.c index 69755f4838b6e1a5fb4fdbd6e21f0b75f3068b21..3b5e17dca4ae52f6408b091a16661a823e455e24 100644 --- a/src/sbbs3/js_socket.c +++ b/src/sbbs3/js_socket.c @@ -154,7 +154,7 @@ static ptrdiff_t js_socket_recv(js_socket_private_t *p, void *buf, size_t len, i fd_set socket_set; struct timeval tv = {0, 0}; char *estr; - + if (len == 0) return total; if(p->session==-1) { @@ -201,7 +201,8 @@ static ptrdiff_t js_socket_sendsocket(js_socket_private_t *p, const void *msg, s if(p->session==-1) return sendsocket(p->sock, msg, len); do { - if((ret=cryptPushData(p->session, msg, len, &copied))==CRYPT_OK) { + // If we don't limit this, we occasionally get errors on large sends... + if((ret=cryptPushData(p->session, msg, len > 0x2000 ? 0x2000 : len, &copied))==CRYPT_OK) { p->unflushed += copied; if(flush) do_CryptFlush(p);