1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-10 07:43:48 -05:00

Get rid of lots of implicit pointer types.

All the main backend structures - Ssh, Telnet, Pty, Serial etc - now
describe structure types themselves rather than pointers to them. The
same goes for the codebase-wide trait types Socket and Plug, and the
supporting types SockAddr and Pinger.

All those things that were typedefed as pointers are older types; the
newer ones have the explicit * at the point of use, because that's
what I now seem to be preferring. But whichever one of those is
better, inconsistently using a mixture of the two styles is worse, so
let's make everything consistent.

A few types are still implicitly pointers, such as Bignum and some of
the GSSAPI types; generally this is either because they have to be
void *, or because they're typedefed differently on different
platforms and aren't always pointers at all. Can't be helped. But I've
got rid of the main ones, at least.
This commit is contained in:
Simon Tatham
2018-10-04 19:10:23 +01:00
parent bf61af1919
commit 96ec2c2500
42 changed files with 595 additions and 596 deletions

View File

@ -168,8 +168,9 @@ static const struct Opt *const opts[] = {
&o_we_sga, &o_they_sga, &o_we_bin, &o_they_bin, NULL
};
typedef struct telnet_tag {
Socket s;
typedef struct Telnet Telnet;
struct Telnet {
Socket *s;
int closed_on_socket_error;
Frontend *frontend;
@ -194,24 +195,24 @@ typedef struct telnet_tag {
Conf *conf;
Pinger pinger;
Pinger *pinger;
const Plug_vtable *plugvt;
Backend backend;
} *Telnet;
};
#define TELNET_MAX_BACKLOG 4096
#define SB_DELTA 1024
static void c_write(Telnet telnet, const void *buf, int len)
static void c_write(Telnet *telnet, const void *buf, int len)
{
int backlog;
backlog = from_backend(telnet->frontend, 0, buf, len);
sk_set_frozen(telnet->s, backlog > TELNET_MAX_BACKLOG);
}
static void log_option(Telnet telnet, const char *sender, int cmd, int option)
static void log_option(Telnet *telnet, const char *sender, int cmd, int option)
{
char *buf;
/*
@ -227,7 +228,7 @@ static void log_option(Telnet telnet, const char *sender, int cmd, int option)
sfree(buf);
}
static void send_opt(Telnet telnet, int cmd, int option)
static void send_opt(Telnet *telnet, int cmd, int option)
{
unsigned char b[3];
@ -238,7 +239,7 @@ static void send_opt(Telnet telnet, int cmd, int option)
log_option(telnet, "client", cmd, option);
}
static void deactivate_option(Telnet telnet, const struct Opt *o)
static void deactivate_option(Telnet *telnet, const struct Opt *o)
{
if (telnet->opt_states[o->index] == REQUESTED ||
telnet->opt_states[o->index] == ACTIVE)
@ -249,7 +250,7 @@ static void deactivate_option(Telnet telnet, const struct Opt *o)
/*
* Generate side effects of enabling or disabling an option.
*/
static void option_side_effects(Telnet telnet, const struct Opt *o, int enabled)
static void option_side_effects(Telnet *telnet, const struct Opt *o, int enabled)
{
if (o->option == TELOPT_ECHO && o->send == DO)
telnet->echoing = !enabled;
@ -276,7 +277,7 @@ static void option_side_effects(Telnet telnet, const struct Opt *o, int enabled)
}
}
static void activate_option(Telnet telnet, const struct Opt *o)
static void activate_option(Telnet *telnet, const struct Opt *o)
{
if (o->send == WILL && o->option == TELOPT_NAWS)
backend_size(&telnet->backend,
@ -294,7 +295,7 @@ static void activate_option(Telnet telnet, const struct Opt *o)
option_side_effects(telnet, o, 1);
}
static void refused_option(Telnet telnet, const struct Opt *o)
static void refused_option(Telnet *telnet, const struct Opt *o)
{
if (o->send == WILL && o->option == TELOPT_NEW_ENVIRON &&
telnet->opt_states[o_oenv.index] == INACTIVE) {
@ -304,7 +305,7 @@ static void refused_option(Telnet telnet, const struct Opt *o)
option_side_effects(telnet, o, 0);
}
static void proc_rec_opt(Telnet telnet, int cmd, int option)
static void proc_rec_opt(Telnet *telnet, int cmd, int option)
{
const struct Opt *const *o;
@ -356,7 +357,7 @@ static void proc_rec_opt(Telnet telnet, int cmd, int option)
send_opt(telnet, (cmd == WILL ? DONT : WONT), option);
}
static void process_subneg(Telnet telnet)
static void process_subneg(Telnet *telnet)
{
unsigned char *b, *p, *q;
int var, value, n, bsize;
@ -523,7 +524,7 @@ static void process_subneg(Telnet telnet)
}
}
static void do_telnet_read(Telnet telnet, char *buf, int len)
static void do_telnet_read(Telnet *telnet, char *buf, int len)
{
char *outbuf = NULL;
int outbuflen = 0, outbufsize = 0;
@ -641,19 +642,19 @@ static void do_telnet_read(Telnet telnet, char *buf, int len)
sfree(outbuf);
}
static void telnet_log(Plug plug, int type, SockAddr addr, int port,
static void telnet_log(Plug *plug, int type, SockAddr *addr, int port,
const char *error_msg, int error_code)
{
Telnet telnet = FROMFIELD(plug, struct telnet_tag, plugvt);
Telnet *telnet = FROMFIELD(plug, Telnet, plugvt);
backend_socket_log(telnet->frontend, type, addr, port,
error_msg, error_code, telnet->conf,
telnet->session_started);
}
static void telnet_closing(Plug plug, const char *error_msg, int error_code,
static void telnet_closing(Plug *plug, const char *error_msg, int error_code,
int calling_back)
{
Telnet telnet = FROMFIELD(plug, struct telnet_tag, plugvt);
Telnet *telnet = FROMFIELD(plug, Telnet, plugvt);
/*
* We don't implement independent EOF in each direction for Telnet
@ -675,18 +676,18 @@ static void telnet_closing(Plug plug, const char *error_msg, int error_code,
/* Otherwise, the remote side closed the connection normally. */
}
static void telnet_receive(Plug plug, int urgent, char *data, int len)
static void telnet_receive(Plug *plug, int urgent, char *data, int len)
{
Telnet telnet = FROMFIELD(plug, struct telnet_tag, plugvt);
Telnet *telnet = FROMFIELD(plug, Telnet, plugvt);
if (urgent)
telnet->in_synch = TRUE;
telnet->session_started = TRUE;
do_telnet_read(telnet, data, len);
}
static void telnet_sent(Plug plug, int bufsize)
static void telnet_sent(Plug *plug, int bufsize)
{
Telnet telnet = FROMFIELD(plug, struct telnet_tag, plugvt);
Telnet *telnet = FROMFIELD(plug, Telnet, plugvt);
telnet->bufsize = bufsize;
}
@ -709,13 +710,13 @@ static const char *telnet_init(Frontend *frontend, Backend **backend_handle,
Conf *conf, const char *host, int port,
char **realhost, int nodelay, int keepalive)
{
SockAddr addr;
SockAddr *addr;
const char *err;
Telnet telnet;
Telnet *telnet;
char *loghost;
int addressfamily;
telnet = snew(struct telnet_tag);
telnet = snew(Telnet);
telnet->plugvt = &Telnet_plugvt;
telnet->backend.vt = &telnet_backend;
telnet->conf = conf_copy(conf);
@ -808,7 +809,7 @@ static const char *telnet_init(Frontend *frontend, Backend **backend_handle,
static void telnet_free(Backend *be)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
sfree(telnet->sb_buf);
if (telnet->s)
@ -825,7 +826,7 @@ static void telnet_free(Backend *be)
*/
static void telnet_reconfig(Backend *be, Conf *conf)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
pinger_reconfig(telnet->pinger, telnet->conf, conf);
conf_free(telnet->conf);
telnet->conf = conf_copy(conf);
@ -836,7 +837,7 @@ static void telnet_reconfig(Backend *be, Conf *conf)
*/
static int telnet_send(Backend *be, const char *buf, int len)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
unsigned char *p, *end;
static const unsigned char iac[2] = { IAC, IAC };
static const unsigned char cr[2] = { CR, NUL };
@ -871,7 +872,7 @@ static int telnet_send(Backend *be, const char *buf, int len)
*/
static int telnet_sendbuffer(Backend *be)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
return telnet->bufsize;
}
@ -880,7 +881,7 @@ static int telnet_sendbuffer(Backend *be)
*/
static void telnet_size(Backend *be, int width, int height)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
unsigned char b[24];
int n;
char *logbuf;
@ -916,7 +917,7 @@ static void telnet_size(Backend *be, int width, int height)
*/
static void telnet_special(Backend *be, SessionSpecialCode code, int arg)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
unsigned char b[2];
if (telnet->s == NULL)
@ -1021,25 +1022,25 @@ static const SessionSpecial *telnet_get_specials(Backend *be)
static int telnet_connected(Backend *be)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
return telnet->s != NULL;
}
static int telnet_sendok(Backend *be)
{
/* Telnet telnet = FROMFIELD(be, struct telnet_tag, backend); */
/* Telnet *telnet = FROMFIELD(be, Telnet, backend); */
return 1;
}
static void telnet_unthrottle(Backend *be, int backlog)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
sk_set_frozen(telnet->s, backlog > TELNET_MAX_BACKLOG);
}
static int telnet_ldisc(Backend *be, int option)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
if (option == LD_ECHO)
return telnet->echoing;
if (option == LD_EDIT)
@ -1049,7 +1050,7 @@ static int telnet_ldisc(Backend *be, int option)
static void telnet_provide_ldisc(Backend *be, Ldisc *ldisc)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
telnet->ldisc = ldisc;
}
@ -1060,7 +1061,7 @@ static void telnet_provide_logctx(Backend *be, LogContext *logctx)
static int telnet_exitcode(Backend *be)
{
Telnet telnet = FROMFIELD(be, struct telnet_tag, backend);
Telnet *telnet = FROMFIELD(be, Telnet, backend);
if (telnet->s != NULL)
return -1; /* still connected */
else if (telnet->closed_on_socket_error)