static int telnet_closing(Plug plug, char *error_msg, int error_code,
int calling_back)
{
- sk_close(s);
- s = NULL;
+ if (s) {
+ sk_close(s);
+ s = NULL;
+ }
if (error_msg) {
/* A socket error has occurred. */
connection_fatal(error_msg);
char *p;
static unsigned char iac[2] = { IAC, IAC };
static unsigned char cr[2] = { CR, NUL };
+#if 0
static unsigned char nl[2] = { CR, LF };
+#endif
if (s == NULL)
return;
sk_write(s, q, p - q);
while (p < buf + len && !iswritable((unsigned char) *p)) {
- sk_write(s, (unsigned char) *p == IAC ? iac : nl, 2);
+ sk_write(s, (unsigned char) *p == IAC ? iac : cr, 2);
p++;
}
}
b[1] = xEOF;
sk_write(s, b, 2);
break;
+ case TS_EOL:
+ sk_write(s, "\r\n", 2);
+ break;
case TS_SYNCH:
b[1] = DM;
sk_write(s, b, 1);