mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 03:22:48 -05:00
Yet more global-removal. The static variables in logging.c are now
absent, and also (I think) all the frontend request functions (such as request_resize) take a context pointer, so that multiple windows can be handled sensibly. I wouldn't swear to this, but I _think_ that only leaves the Unicode stuff as the last stubborn holdout. [originally from svn r2147]
This commit is contained in:
38
telnet.c
38
telnet.c
@ -224,14 +224,14 @@ static void c_write1(Telnet telnet, int c)
|
||||
sk_set_frozen(telnet->s, backlog > TELNET_MAX_BACKLOG);
|
||||
}
|
||||
|
||||
static void log_option(char *sender, int cmd, int option)
|
||||
static void log_option(Telnet telnet, char *sender, int cmd, int option)
|
||||
{
|
||||
char buf[50];
|
||||
sprintf(buf, "%s:\t%s %s", sender,
|
||||
(cmd == WILL ? "WILL" : cmd == WONT ? "WONT" :
|
||||
cmd == DO ? "DO" : cmd == DONT ? "DONT" : "<??>"),
|
||||
telopt(option));
|
||||
logevent(buf);
|
||||
logevent(telnet->frontend, buf);
|
||||
}
|
||||
|
||||
static void send_opt(Telnet telnet, int cmd, int option)
|
||||
@ -242,7 +242,7 @@ static void send_opt(Telnet telnet, int cmd, int option)
|
||||
b[1] = cmd;
|
||||
b[2] = option;
|
||||
telnet->bufsize = sk_write(telnet->s, b, 3);
|
||||
log_option("client", cmd, option);
|
||||
log_option(telnet, "client", cmd, option);
|
||||
}
|
||||
|
||||
static void deactivate_option(Telnet telnet, const struct Opt *o)
|
||||
@ -314,7 +314,7 @@ static void proc_rec_opt(Telnet telnet, int cmd, int option)
|
||||
{
|
||||
const struct Opt *const *o;
|
||||
|
||||
log_option("server", cmd, option);
|
||||
log_option(telnet, "server", cmd, option);
|
||||
for (o = opts; *o; o++) {
|
||||
if ((*o)->option == option && (*o)->ack == cmd) {
|
||||
switch (telnet->opt_states[(*o)->index]) {
|
||||
@ -378,11 +378,11 @@ static void process_subneg(Telnet telnet)
|
||||
b[n] = IAC;
|
||||
b[n + 1] = SE;
|
||||
telnet->bufsize = sk_write(telnet->s, b, n + 2);
|
||||
logevent("server:\tSB TSPEED SEND");
|
||||
logevent(telnet->frontend, "server:\tSB TSPEED SEND");
|
||||
sprintf(logbuf, "client:\tSB TSPEED IS %s", cfg.termspeed);
|
||||
logevent(logbuf);
|
||||
logevent(telnet->frontend, logbuf);
|
||||
} else
|
||||
logevent("server:\tSB TSPEED <something weird>");
|
||||
logevent(telnet->frontend, "server:\tSB TSPEED <something weird>");
|
||||
break;
|
||||
case TELOPT_TTYPE:
|
||||
if (telnet->sb_len == 1 && telnet->sb_buf[0] == TELQUAL_SEND) {
|
||||
@ -400,11 +400,11 @@ static void process_subneg(Telnet telnet)
|
||||
b[n + 5] = SE;
|
||||
telnet->bufsize = sk_write(telnet->s, b, n + 6);
|
||||
b[n + 4] = 0;
|
||||
logevent("server:\tSB TTYPE SEND");
|
||||
logevent(telnet->frontend, "server:\tSB TTYPE SEND");
|
||||
sprintf(logbuf, "client:\tSB TTYPE IS %s", b + 4);
|
||||
logevent(logbuf);
|
||||
logevent(telnet->frontend, logbuf);
|
||||
} else
|
||||
logevent("server:\tSB TTYPE <something weird>\r\n");
|
||||
logevent(telnet->frontend, "server:\tSB TTYPE <something weird>\r\n");
|
||||
break;
|
||||
case TELOPT_OLD_ENVIRON:
|
||||
case TELOPT_NEW_ENVIRON:
|
||||
@ -414,7 +414,7 @@ static void process_subneg(Telnet telnet)
|
||||
char logbuf[50];
|
||||
p++;
|
||||
sprintf(logbuf, "server:\tSB %s SEND", telopt(telnet->sb_opt));
|
||||
logevent(logbuf);
|
||||
logevent(telnet->frontend, logbuf);
|
||||
if (telnet->sb_opt == TELOPT_OLD_ENVIRON) {
|
||||
if (cfg.rfc_environ) {
|
||||
value = RFC_VALUE;
|
||||
@ -477,7 +477,7 @@ static void process_subneg(Telnet telnet)
|
||||
telnet->bufsize = sk_write(telnet->s, b, n);
|
||||
sprintf(logbuf, "client:\tSB %s IS %s", telopt(telnet->sb_opt),
|
||||
n == 6 ? "<nothing>" : "<stuff>");
|
||||
logevent(logbuf);
|
||||
logevent(telnet->frontend, logbuf);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -605,7 +605,7 @@ static int telnet_closing(Plug plug, char *error_msg, int error_code,
|
||||
}
|
||||
if (error_msg) {
|
||||
/* A socket error has occurred. */
|
||||
logevent(error_msg);
|
||||
logevent(telnet->frontend, error_msg);
|
||||
connection_fatal("%s", error_msg);
|
||||
} /* Otherwise, the remote side closed the connection normally. */
|
||||
return 0;
|
||||
@ -666,7 +666,7 @@ static char *telnet_init(void *frontend_handle, void **backend_handle,
|
||||
{
|
||||
char buf[200];
|
||||
sprintf(buf, "Looking up host \"%.170s\"", host);
|
||||
logevent(buf);
|
||||
logevent(telnet->frontend, buf);
|
||||
}
|
||||
addr = sk_namelookup(host, realhost);
|
||||
if ((err = sk_addr_error(addr)))
|
||||
@ -682,7 +682,7 @@ static char *telnet_init(void *frontend_handle, void **backend_handle,
|
||||
char buf[200], addrbuf[100];
|
||||
sk_getaddr(addr, addrbuf, 100);
|
||||
sprintf(buf, "Connecting to %.100s port %d", addrbuf, port);
|
||||
logevent(buf);
|
||||
logevent(telnet->frontend, buf);
|
||||
}
|
||||
telnet->s = new_connection(addr, *realhost, port, 0, 1,
|
||||
nodelay, (Plug) telnet);
|
||||
@ -788,7 +788,7 @@ static void telnet_size(void *handle, int width, int height)
|
||||
sprintf(logbuf, "client:\tSB NAWS %d,%d",
|
||||
((unsigned char) b[3] << 8) + (unsigned char) b[4],
|
||||
((unsigned char) b[5] << 8) + (unsigned char) b[6]);
|
||||
logevent(logbuf);
|
||||
logevent(telnet->frontend, logbuf);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -916,6 +916,11 @@ static void telnet_provide_ldisc(void *handle, void *ldisc)
|
||||
telnet->ldisc = ldisc;
|
||||
}
|
||||
|
||||
static void telnet_provide_logctx(void *handle, void *logctx)
|
||||
{
|
||||
/* This is a stub. */
|
||||
}
|
||||
|
||||
static int telnet_exitcode(void *handle)
|
||||
{
|
||||
Telnet telnet = (Telnet) handle;
|
||||
@ -934,6 +939,7 @@ Backend telnet_backend = {
|
||||
telnet_sendok,
|
||||
telnet_ldisc,
|
||||
telnet_provide_ldisc,
|
||||
telnet_provide_logctx,
|
||||
telnet_unthrottle,
|
||||
23
|
||||
};
|
||||
|
Reference in New Issue
Block a user