
Pages:<< prev 1 next >>



Geomancer

GroupAdministrators
Posts1,992
JoinedJul 26, 2005
In comm.c find the read_from_descriptor function and find this
change it to this
If your using a client that holds a lot of text and then sends it all at once like the latest Zmud client or if you used telnet and entered a lot of text without hitting enter, the recv function starts returning 0 once its already put all it can into d->inbuf and this causes it to kick the connection thinking it is getting an EOF.
This affects SMAUG and probably all that use this read_from_descriptor.
if( nRead > 0 ) { iStart += nRead; /* Update the incomm here before adding more to the line etc */ update_transfer( 1, nRead ); if( d->inbuf[iStart - 1] == '\r' || d->inbuf[iStart - 1] == '\n' ) break; }
change it to this
if( nRead > 0 ) { iStart += nRead; /* Update the incomm here before adding more to the line etc */ update_transfer( 1, nRead ); if( d->inbuf[iStart - 1] == '\r' || d->inbuf[iStart - 1] == '\n' ) break; /* Reached limit so have to let it carry on */ if( iStart >= ( sizeof( d->inbuf ) - 10 ) ) break; }
If your using a client that holds a lot of text and then sends it all at once like the latest Zmud client or if you used telnet and entered a lot of text without hitting enter, the recv function starts returning 0 once its already put all it can into d->inbuf and this causes it to kick the connection thinking it is getting an EOF.
This affects SMAUG and probably all that use this read_from_descriptor.
Pages:<< prev 1 next >>