Login
User Name:

Password:



Register

Forgot your password?
void nanny_get_new_race -- comm.c
Mar 13, 2025 7:08 am
By Elwood
IPv6
Jan 25, 2025 10:45 pm
By Samson
mudstrlcpy and mudstrlcat
Jan 18, 2025 5:23 pm
By Samson
I3 and IMC
Jan 17, 2025 9:35 pm
By Samson
AFKMud 2.5.1
Jan 17, 2025 2:22 pm
By Samson
SWFotEFUSS 1.5.3
Author: Various
Submitted by: Samson
SWRFUSS 1.4.3
Author: Various
Submitted by: Samson
SmaugFUSS 1.9.8
Author: Various
Submitted by: Samson
AFKMud 2.5.2
Author: AFKMud Team
Submitted by: Samson
SmaugFUSS 1.9.7
Author: Various
Submitted by: Samson
Users Online
AhrefsBot, Anthropic, Amazonbot, Google, Bytespider, Bing

Members: 0
Guests: 9
Stats
Files
Topics
Posts
Members
Newest Member
507
3,812
19,722
591
TracySpencer

» SmaugMuds » Bugfix Lists » LoP Bugfix List » read_from_discriptor issue
Forum Rules | Mark all | Recent Posts

read_from_discriptor issue
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Jan 15, 2012 10:38 am   
Go to the top of the page
Go to the bottom of the page

Remcon
Geomancer
GroupAdministrators
Posts1,992
JoinedJul 26, 2005

 
In comm.c find the read_from_descriptor function and find 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;
      }

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