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 >>