attempt to avoid warnings in picky environments by storing options as

unsigned chars
This commit is contained in:
Daniel Stenberg 2006-04-07 11:46:16 +00:00
parent b0adcd6a46
commit 34e7daf989
1 changed files with 13 additions and 16 deletions

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -163,8 +163,8 @@ struct TELNET {
struct curl_slist *telnet_vars; /* Environment variables */ struct curl_slist *telnet_vars; /* Environment variables */
/* suboptions */ /* suboptions */
char subbuffer[SUBBUFSIZE]; unsigned char subbuffer[SUBBUFSIZE];
char *subpointer, *subend; /* buffer for sub-options */ unsigned char *subpointer, *subend; /* buffer for sub-options */
TelnetReceive telrcv_state; TelnetReceive telrcv_state;
}; };
@ -1014,18 +1014,15 @@ void telrcv(struct connectdata *conn,
if (c != CURL_IAC) if (c != CURL_IAC)
{ {
/* /*
* This is an error. We only expect to get * This is an error. We only expect to get "IAC IAC" or "IAC SE".
* "IAC IAC" or "IAC SE". Several things may * Several things may have happend. An IAC was not doubled, the
* have happend. An IAC was not doubled, the * IAC SE was left off, or another option got inserted into the
* IAC SE was left off, or another option got * suboption are all possibilities. If we assume that the IAC was
* inserted into the suboption are all possibilities. * not doubled, and really the IAC SE was left off, we could get
* If we assume that the IAC was not doubled, * into an infinate loop here. So, instead, we terminate the
* and really the IAC SE was left off, we could * suboption, and process the partial suboption if we can.
* get into an infinate loop here. So, instead,
* we terminate the suboption, and process the
* partial suboption if we can.
*/ */
CURL_SB_ACCUM(tn, (unsigned char)CURL_IAC); CURL_SB_ACCUM(tn, CURL_IAC);
CURL_SB_ACCUM(tn, c); CURL_SB_ACCUM(tn, c);
tn->subpointer -= 2; tn->subpointer -= 2;
CURL_SB_TERM(tn); CURL_SB_TERM(tn);
@ -1040,8 +1037,8 @@ void telrcv(struct connectdata *conn,
} }
else else
{ {
CURL_SB_ACCUM(tn, (unsigned char)CURL_IAC); CURL_SB_ACCUM(tn, CURL_IAC);
CURL_SB_ACCUM(tn, (unsigned char)CURL_SE); CURL_SB_ACCUM(tn, CURL_SE);
tn->subpointer -= 2; tn->subpointer -= 2;
CURL_SB_TERM(tn); CURL_SB_TERM(tn);
suboption(conn); /* handle sub-option */ suboption(conn); /* handle sub-option */