X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=raw.c;h=9cbb606c8f467831b2abe6b07fc7e2fe42a6b715;hb=9b15a8010102fc83dcd7eef78014a65f11619d63;hp=c354580398528dca279be9c2ef0bef06230d0111;hpb=89505459e31136106e5922fabb74df90eae4008b;p=PuTTY.git diff --git a/raw.c b/raw.c index c3545803..9cbb606c 100644 --- a/raw.c +++ b/raw.c @@ -24,13 +24,15 @@ static void c_write (char *buf, int len) { from_backend(0, buf, len); } -static int raw_receive (Socket s, int urgent, char *data, int len) { +static int raw_receive (Socket skt, int urgent, char *data, int len) { if (urgent==3) { /* A socket error has occurred. */ + sk_close(s); + s = NULL; connection_fatal(data); len = 0; - } - if (!len) { + return 0; + } else if (!len) { /* Connection has closed. */ sk_close(s); s = NULL; @@ -70,11 +72,6 @@ static char *raw_init (char *host, int port, char **realhost) { sk_addr_free(addr); - /* - * We have no pre-session phase. - */ - begin_session(); - return NULL; } @@ -109,6 +106,12 @@ static Socket raw_socket(void) { return s; } static int raw_sendok(void) { return 1; } +static int raw_ldisc(int option) { + if (option == LD_EDIT || option == LD_ECHO) + return 1; + return 0; +} + Backend raw_backend = { raw_init, raw_send, @@ -116,5 +119,6 @@ Backend raw_backend = { raw_special, raw_socket, raw_sendok, + raw_ldisc, 1 };