projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Stop plink losing data at start of session
[u/mdw/putty]
/
raw.c
diff --git
a/raw.c
b/raw.c
index
3023d95
..
cf4eaee
100644
(file)
--- a/
raw.c
+++ b/
raw.c
@@
-14,8
+14,6
@@
static SOCKET s = INVALID_SOCKET;
static SOCKET s = INVALID_SOCKET;
-#define iswritable(x) ( (x) != IAC && (x) != CR )
-
static void raw_size(void);
static int sb_opt, sb_len;
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) {
}
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";
}
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";
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;
}
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,
Backend raw_backend = {
raw_init,
raw_msg,
raw_send,
raw_size,
- raw_special
+ raw_special,
+ raw_socket,
+ raw_sendok
};
};