From 447d3ad9f8940bc27a0fda2c4df79ea6a14a51d2 Mon Sep 17 00:00:00 2001 From: Sean Middleditch Date: Fri, 20 Mar 2009 23:22:37 -0400 Subject: [PATCH] will/wont states before do/wont, just like actual telnet codes and event numbers --- libtelnet.c | 20 ++++++++++---------- libtelnet.h | 4 ++-- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/libtelnet.c b/libtelnet.c index 73c800f..4a86537 100644 --- a/libtelnet.c +++ b/libtelnet.c @@ -527,16 +527,6 @@ static void _process(telnet_t *telnet, const char *buffer, break; /* negotiation commands */ - case TELNET_STATE_DO: - _negotiate(telnet, TELNET_DO, byte); - start = i + 1; - telnet->state = TELNET_STATE_DATA; - break; - case TELNET_STATE_DONT: - _negotiate(telnet, TELNET_DONT, byte); - start = i + 1; - telnet->state = TELNET_STATE_DATA; - break; case TELNET_STATE_WILL: _negotiate(telnet, TELNET_WILL, byte); start = i + 1; @@ -547,6 +537,16 @@ static void _process(telnet_t *telnet, const char *buffer, start = i + 1; telnet->state = TELNET_STATE_DATA; break; + case TELNET_STATE_DO: + _negotiate(telnet, TELNET_DO, byte); + start = i + 1; + telnet->state = TELNET_STATE_DATA; + break; + case TELNET_STATE_DONT: + _negotiate(telnet, TELNET_DONT, byte); + start = i + 1; + telnet->state = TELNET_STATE_DATA; + break; /* subnegotiation -- determine subnegotiation telopt */ case TELNET_STATE_SB: diff --git a/libtelnet.h b/libtelnet.h index e32f564..e75cdff 100644 --- a/libtelnet.h +++ b/libtelnet.h @@ -94,10 +94,10 @@ typedef struct telnet_event_t telnet_event_t; enum telnet_state_t { TELNET_STATE_DATA = 0, TELNET_STATE_IAC, - TELNET_STATE_DO, - TELNET_STATE_DONT, TELNET_STATE_WILL, TELNET_STATE_WONT, + TELNET_STATE_DO, + TELNET_STATE_DONT, TELNET_STATE_SB, TELNET_STATE_SB_DATA, TELNET_STATE_SB_DATA_IAC