X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/996c8c3b71ae7d62c5da27e40d6771f1d17c584b..8ccc75b0d2187cd9e35913749de0ed00e9ef5931:/raw.c diff --git a/raw.c b/raw.c index 3023d95a..cf4eaee1 100644 --- a/raw.c +++ b/raw.c @@ -14,8 +14,6 @@ static SOCKET s = INVALID_SOCKET; -#define iswritable(x) ( (x) != IAC && (x) != CR ) - static void raw_size(void); static int sb_opt, sb_len; @@ -50,16 +48,8 @@ static void s_write (void *buf, int len) { } static void c_write (char *buf, int len) { - while (len--) { - int new_head = (inbuf_head + 1) & INBUF_MASK; - if (new_head != inbuf_reap) { - inbuf[inbuf_head] = *buf++; - inbuf_head = new_head; - } else { - term_out(); - if( inbuf_head == inbuf_reap ) len++; else break; - } - } + while (len--) + c_write1(*buf++); } /* @@ -134,7 +124,7 @@ static char *raw_init (HWND hwnd, char *host, int port, char **realhost) { default: return "connect(): unknown error"; } - if (WSAAsyncSelect (s, hwnd, WM_NETEVENT, FD_READ | + if (hwnd && WSAAsyncSelect (s, hwnd, WM_NETEVENT, FD_READ | FD_WRITE | FD_OOB | FD_CLOSE) == SOCKET_ERROR) switch (WSAGetLastError()) { case WSAENETDOWN: return "Network is down"; @@ -225,10 +215,16 @@ static void raw_special (Telnet_Special code) { return; } +static SOCKET raw_socket(void) { return s; } + +static int raw_sendok(void) { return 1; } + Backend raw_backend = { raw_init, raw_msg, raw_send, raw_size, - raw_special + raw_special, + raw_socket, + raw_sendok };