projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pterm.c now relies on backend `exitcode' functions returning <0 when
[u/mdw/putty]
/
telnet.c
diff --git
a/telnet.c
b/telnet.c
index
c0efd71
..
6f6deae
100644
(file)
--- a/
telnet.c
+++ b/
telnet.c
@@
-611,18
+611,11
@@
static void do_telnet_read(Telnet telnet, char *buf, int len)
else {
subneg_addchar:
if (telnet->sb_len >= telnet->sb_size) {
else {
subneg_addchar:
if (telnet->sb_len >= telnet->sb_size) {
- unsigned char *newbuf;
telnet->sb_size += SB_DELTA;
telnet->sb_size += SB_DELTA;
- newbuf = (telnet->sb_buf ?
- srealloc(telnet->sb_buf, telnet->sb_size) :
- smalloc(telnet->sb_size));
- if (newbuf)
- telnet->sb_buf = newbuf;
- else
- telnet->sb_size -= SB_DELTA;
+ telnet->sb_buf = sresize(telnet->sb_buf, telnet->sb_size,
+ unsigned char);
}
}
- if (telnet->sb_len < telnet->sb_size)
- telnet->sb_buf[telnet->sb_len++] = c;
+ telnet->sb_buf[telnet->sb_len++] = c;
telnet->state = SUBNEGOT; /* in case we came here by goto */
}
break;
telnet->state = SUBNEGOT; /* in case we came here by goto */
}
break;
@@
-691,7
+684,7
@@
static char *telnet_init(void *frontend_handle, void **backend_handle,
char *err;
Telnet telnet;
char *err;
Telnet telnet;
- telnet = s
malloc(sizeof(*telnet)
);
+ telnet = s
new(struct telnet_tag
);
telnet->fn = &fn_table;
telnet->cfg = *cfg; /* STRUCTURE COPY */
telnet->s = NULL;
telnet->fn = &fn_table;
telnet->cfg = *cfg; /* STRUCTURE COPY */
telnet->s = NULL;
@@
-1003,9
+996,12
@@
static void telnet_provide_logctx(void *handle, void *logctx)
static int telnet_exitcode(void *handle)
{
static int telnet_exitcode(void *handle)
{
- /* Telnet telnet = (Telnet) handle; */
- /* Telnet doesn't transmit exit codes back to the client */
- return 0;
+ Telnet telnet = (Telnet) handle;
+ if (telnet->s != NULL)
+ return -1; /* still connected */
+ else
+ /* Telnet doesn't transmit exit codes back to the client */
+ return 0;
}
Backend telnet_backend = {
}
Backend telnet_backend = {