You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sebb (JIRA)" <ji...@apache.org> on 2010/07/11 02:24:49 UTC
[jira] Resolved: (NET-329) TelnetInoutStream#__read() bug in the
__receiveState handling for the _STATE_IAC state.
[ https://issues.apache.org/jira/browse/NET-329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sebb resolved NET-329.
----------------------
Fix Version/s: 2.1
Resolution: Fixed
> TelnetInoutStream#__read() bug in the __receiveState handling for the _STATE_IAC state.
> ---------------------------------------------------------------------------------------
>
> Key: NET-329
> URL: https://issues.apache.org/jira/browse/NET-329
> Project: Commons Net
> Issue Type: Sub-task
> Affects Versions: 2.0
> Reporter: Sebb
> Fix For: 2.1
>
>
> Moved from NET-89:
> Also, in TelnetInputStream#__read() there is a bug in the __receiveState
> handling for the _STATE_IAC state. When a second consecutive IAC (0x255) is
> received to encode the single 0x255 character, read does not return 0x255 but
> instead move on to reading the next char in the stream.
> The current code reads:
> {code}
> case _STATE_IAC:
> switch (ch)
> {
> case TelnetCommand.WILL:
> __receiveState = _STATE_WILL;
> continue;
> case TelnetCommand.WONT:
> __receiveState = _STATE_WONT;
> continue;
> case TelnetCommand.DO:
> __receiveState = _STATE_DO;
> continue;
> case TelnetCommand.DONT:
> __receiveState = _STATE_DONT;
> continue;
> /* TERMINAL-TYPE option (start)*/
> case TelnetCommand.SB:
> __suboption_count = 0;
> __receiveState = _STATE_SB;
> continue;
> /* TERMINAL-TYPE option (end)*/
> case TelnetCommand.IAC:
> __receiveState = _STATE_DATA;
> break;
> default:
> break;
> }
> __receiveState = _STATE_DATA;
> continue;
> case _STATE_WILL:
> {code}
> but it should be:
> {code}
> case _STATE_IAC:
> switch (ch)
> {
> case TelnetCommand.WILL:
> __receiveState = _STATE_WILL;
> continue;
> case TelnetCommand.WONT:
> __receiveState = _STATE_WONT;
> continue;
> case TelnetCommand.DO:
> __receiveState = _STATE_DO;
> continue;
> case TelnetCommand.DONT:
> __receiveState = _STATE_DONT;
> continue;
> /* TERMINAL-TYPE option (start)*/
> case TelnetCommand.SB:
> __suboption_count = 0;
> __receiveState = _STATE_SB;
> continue;
> /* TERMINAL-TYPE option (end)*/
> case TelnetCommand.IAC:
> __receiveState = _STATE_DATA;
> break; // exit to enclosing switch to return from read
> default:
> __receiveState = _STATE_DATA;
> continue; // move on the next char
> }
> break; // exit and return from read
> case _STATE_WILL:
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.