Register forum user name Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.

Due to spam on this forum, all posts now need moderator approval.

 Entire forum ➜ MUSHclient ➜ Bug reports ➜ MUSHclient may disconnect before all output has been received

MUSHclient may disconnect before all output has been received

It is now over 60 days since the last post. This thread is closed.     Refresh page


Pages: 1  2  3 

Posted by Nick Gammon   Australia  (23,166 posts)  Bio   Forum Administrator
Date Reply #30 on Tue 09 Feb 2010 12:22 AM (UTC)

Amended on Tue 09 Feb 2010 12:26 AM (UTC) by Nick Gammon

Message
Well I can reproduce your problem, not quite sure why:


MUD: Enter an option or enter your character's name. \ff\f9\ff\fe\19\ff\fd\c8\ff\fdV\ff\fc\19\ff\faV\ff\f0

Me: 1

MUD: What is the name you are known by in Achaea? > \ff\f9 

Me: name deleted

MUD: What is your password? \ff\f9 

Me: password deleted

MUD: \ff\fb\01\ff\fc\01Password correct. Welcome to Achaea.


Notice the sequence of events: It asks the password followed by IAC GA.

I reply (echoed).

It then sends IAC WILL 01 (turn echo off).
Then in the same packet it sends IAC WONT 01 (turn echo on).
It then sends "Password correct."

So in that packet sequence, it is turning echo off at the wrong moment.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Nick Gammon   Australia  (23,166 posts)  Bio   Forum Administrator
Date Reply #31 on Tue 09 Feb 2010 01:18 AM (UTC)

Amended on Tue 09 Feb 2010 01:27 AM (UTC) by Nick Gammon

Message
OK, I think I have worked it out.

Version 4.48:


Enter an option or enter your character's name. <IAC><GA>
<IAC><DONT><EOR><IAC><DONT><200><IAC><DONT><MCCP>
1
<IAC><WONT><EOR><IAC><WONT><200><IAC><WONT><MCCP>
What is the name you are known by in Achaea? > <IAC><GA>
<IAC><DONT><EOR><IAC><DONT><200><IAC><DONT><MCCP>
name
What is your password? <IAC><GA>
<IAC><WILL><1>
password
<IAC><WONT><1>Password correct. Welcome to Achaea.



That works with Achaea, note that it sends <IAC><WILL><1> after asking for the password, so it isn't echoed.


Version 4.49:


Enter an option or enter your character's name. <IAC><GA>
<IAC><DONT><EOR><IAC><DONT><200><IAC><DO><MCCP>
<IAC><WONT><EOR><IAC><WONT><200><IAC><SB><MCCP><IAC><SE>
1
What is the name you are known by in Achaea? > <IAC><GA>
name
What is your password? <IAC><GA>
password
<IAC><WILL><1><IAC><WONT><1>Password correct. Welcome to Achaea.


This one doesn't work, it turns echo off too late.

However spot the difference? Version 4.48 doesn't turn on MCCP (because of the bug someone noted). So it is all done uncompressed.

Try this, turn compression off, and the password is suppressed correctly.

Try an earlier version of MUSHclient (before all the telnet negotiation changes) and see what happens if compression is on.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Nick Gammon   Australia  (23,166 posts)  Bio   Forum Administrator
Date Reply #32 on Tue 09 Feb 2010 01:55 AM (UTC)

Amended on Tue 09 Feb 2010 01:56 AM (UTC) by Nick Gammon

Message
Well I carefully stepped through it with the debugger. Although the problem point is around when compression is turned on, I don't believe MUSHclient is faulty here.

I confirmed we were in compressed mode by the time it asked for the name (and waited for a reply) (as you can see from the packet debug, where it asks for the name after sending <IAC><SB><MCCP><IAC><SE>), so it is not as if the transition from uncompressed to compressed is causing the problem per se.

This seems to me to relate to the other problem with Achaea, where you don't see the final "goodbye" message after disconnecting. I speculated at the time they might not be flushing the compressed data, and this seems to me to be the same thing. Note what happens in decompressed mode:


What is your password? <IAC><GA>
<IAC><WILL><1>


So that final 3 bytes could still be in the compressed buffer at the server end. The zLib documentation recommends *against* flushing the buffer all the time, as that would cause a performance hit.

OTOH, they must flush the buffer when prompting for input, or you would probably miss every 2nd prompt.

My guess is, they flush the buffer after <IAC> <GA>, to make sure the player sees the prompt. So it would look like this:


What is your password? <IAC><GA> <flush>
<IAC><WILL><1>


In other words, they didn't flush after the <IAC><WILL><1>.

Also, the bug (see page 1 of this thread) where you don't see:


You feel your insides clench as your soul is frozen.
You have played 4095 games.

Goodbye for now!


... could be explained the same way. They aren't sending <IAC><GA> so they aren't flushing that final message.

I suggest a polite message to the Achaea admins along the lines of:


  • Please flush the zlib buffer after sending <IAC><WILL><1> after requesting the password.

  • Please flush the buffer after the final "Goodbye for now!" message.


That should fix your problems.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Twisol   USA  (2,257 posts)  Bio
Date Reply #33 on Tue 09 Feb 2010 01:58 AM (UTC)
Message
That sounds very plausible. Thanks again, Nick!

'Soludra' on Achaea

Blog: http://jonathan.com/
GitHub: http://github.com/Twisol
Top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


116,979 views.

This is page 3, subject is 3 pages long:  [Previous page]  1  2  3 

It is now over 60 days since the last post. This thread is closed.     Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.