From 108b0b94c170bf0d8a84fd264964ac9591587c9d Mon Sep 17 00:00:00 2001 From: simon Date: Wed, 16 Mar 2005 13:20:02 +0000 Subject: [PATCH] Fix `telnet-option-loop', I think. (Untested except to check it compiles, since I don't have a suitably awkward server to run it against; but Ben reviewed the patch before checkin so we can share the blame if it doesn't work.) git-svn-id: svn://svn.tartarus.org/sgt/putty@5512 cda61777-01e9-0310-a592-d414129be87e --- telnet.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/telnet.c b/telnet.c index 54b9a7c7..fe6f5cf9 100644 --- a/telnet.c +++ b/telnet.c @@ -394,9 +394,12 @@ static void proc_rec_opt(Telnet telnet, int cmd, int option) } /* * If we reach here, the option was one we weren't prepared to - * cope with. So send a negative ack. + * cope with. If the request was positive (WILL or DO), we send + * a negative ack to indicate refusal. If the request was + * negative (WONT / DONT), we must do nothing. */ - send_opt(telnet, (cmd == WILL ? DONT : WONT), option); + if (cmd == WILL || cmd == DO) + send_opt(telnet, (cmd == WILL ? DONT : WONT), option); } static void process_subneg(Telnet telnet) -- 2.11.0