#include "IOSSLBackend.h"
#ifdef WIN32
+#ifdef _WIN32_WINNT
+#undef _WIN32_WINNT
+#endif
#define _WIN32_WINNT 0x501
-#include <windows.h>
#include <winsock2.h>
+#include <windows.h>
#include <ws2tcpip.h>
#else
#include <sys/socket.h>
new_iosock->socket_flags |= IOSOCKETFLAG_SSLSOCKET;
\r
iossl_client_accepted(iosock, new_iosock);
+ } else {
+ //initialize readbuf
+ iosocket_increase_buffer(&iosock->readbuf, 1024);
}
iosocket_activate(new_iosock);
iosocketevents_callback_retry_read:
if((readable && ssl_rehandshake == 0) || ssl_rehandshake == 1) {
int bytes;
- if(iosock->readbuf.buflen - iosock->readbuf.bufpos >= 128) {
+ if(iosock->readbuf.buflen - iosock->readbuf.bufpos <= 128) {
int addsize;
if(iosock->readbuf.buflen >= 2048)
addsize = 1024;
else
addsize = iosock->readbuf.buflen;
+ if(addsize == 0) {
+ iolog_trigger(IOLOG_WARNING, "readbuf length is 0 when trying to read from fd %d", iosock->fd);
+ addsize = 512;
+ }
iosocket_increase_buffer(&iosock->readbuf, iosock->readbuf.buflen + addsize);
}
if((iosock->socket_flags & IOSOCKETFLAG_SSLSOCKET))