diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 5296226b18c67f4a228af2de9717b0b0a6fbf21a..455fdfea5e5d276fd0cf647c6cc35b0cde88151a 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -2415,12 +2415,20 @@ void output_thread(void* arg) i=buftop-bufbot; // Pretend we sent it all } else { + // READ = WRITE TIMEOUT HACK... REMOVE WHEN FIXED + if(cryptStatusError(i=cryptSetAttribute(sbbs->ssh_session, CRYPT_OPTION_NET_WRITETIMEOUT, 1))) + GCESS(i, sbbs->client_socket, sbbs->ssh_session, "setting write timeout"); if(cryptStatusError((err=cryptFlushData(sbbs->ssh_session)))) { GCES(err, sbbs->cfg.node_num, sbbs->ssh_session, "flushing data"); ssh_errors++; - sbbs->online=FALSE; - i=buftop-bufbot; // Pretend we sent it all + if (err != CRYPT_ERROR_TIMEOUT) { + sbbs->online=FALSE; + i=buftop-bufbot; // Pretend we sent it all + } } + // READ = WRITE TIMEOUT HACK... REMOVE WHEN FIXED + if(cryptStatusError(i=cryptSetAttribute(sbbs->ssh_session, CRYPT_OPTION_NET_WRITETIMEOUT, 0))) + GCESS(i, sbbs->client_socket, sbbs->ssh_session, "setting write timeout"); } } pthread_mutex_unlock(&sbbs->ssh_mutex); @@ -5473,6 +5481,7 @@ NO_SSH: } if(cryptStatusError(i=cryptSetAttribute(sbbs->ssh_session, CRYPT_OPTION_NET_READTIMEOUT, 0))) GCESS(i, sbbs->client_socket, sbbs->ssh_session, "setting read timeout"); + // READ = WRITE TIMEOUT HACK... REMOVE WHEN FIXED if(cryptStatusError(i=cryptSetAttribute(sbbs->ssh_session, CRYPT_OPTION_NET_WRITETIMEOUT, 0))) GCESS(i, sbbs->client_socket, sbbs->ssh_session, "setting write timeout"); #if 0