projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Introduce a sane interface function, from_backend(), for backends to
[u/mdw/putty]
/
telnet.c
diff --git
a/telnet.c
b/telnet.c
index
4fb39c6
..
7b6c0bf
100644
(file)
--- a/
telnet.c
+++ b/
telnet.c
@@
-171,6
+171,11
@@
static void s_write (void *buf, int len) {
try_write();
}
try_write();
}
+static void c_write1(int c) {
+ char cc = (char)c;
+ from_backend(0, &cc, 1);
+}
+
static void log_option (char *sender, int cmd, int option) {
char buf[50];
sprintf(buf, "%s:\t%s %s", sender,
static void log_option (char *sender, int cmd, int option) {
char buf[50];
sprintf(buf, "%s:\t%s %s", sender,
@@
-631,8
+636,11
@@
static int telnet_msg (WPARAM wParam, LPARAM lParam) {
case FD_CLOSE:
{
int clear_of_oob = 1;
case FD_CLOSE:
{
int clear_of_oob = 1;
- if (ioctlsocket (s, SIOCATMARK, &clear_of_oob) < 0 )
- return -20000-WSAGetLastError();
+
+ /* Don't check for error return; some shims don't support
+ * this ioctl.
+ */
+ ioctlsocket (s, SIOCATMARK, &clear_of_oob);
in_synch = !clear_of_oob;
in_synch = !clear_of_oob;
@@
-747,6
+755,12
@@
static void telnet_special (Telnet_Special code) {
send_opt (o_echo.nsend, o_echo.option);
}
break;
send_opt (o_echo.nsend, o_echo.option);
}
break;
+ case TS_PING:
+ if (o_they_sga.state == ACTIVE) {
+ b[1] = NOP;
+ s_write (b, 2);
+ }
+ break;
}
}
}
}