1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-01 03:22: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

@ -314,7 +314,7 @@ int init_ucs(struct unicode_data *ucsdata, char *line_codepage,
/*
* Spare function exported directly from uxnet.c.
*/
void *sk_getxdmdata(Socket sock, int *lenp);
void *sk_getxdmdata(Socket *sock, int *lenp);
/*
* General helpful Unix stuff: more helpful version of the FD_SET

View File

@ -63,7 +63,7 @@ typedef struct NetSocket NetSocket;
struct NetSocket {
const char *error;
int s;
Plug plug;
Plug *plug;
bufchain output_data;
int connected; /* irrelevant for listening sockets */
int writable;
@ -79,7 +79,7 @@ struct NetSocket {
int listener;
int nodelay, keepalive; /* for connect()-type sockets */
int privport, port; /* and again */
SockAddr addr;
SockAddr *addr;
SockAddrStep step;
/*
* We sometimes need pairs of Socket structures to be linked:
@ -92,7 +92,7 @@ struct NetSocket {
const Socket_vtable *sockvt;
};
struct SockAddr_tag {
struct SockAddr {
int refcount;
const char *error;
enum { UNRESOLVED, UNIX, IP } superfamily;
@ -184,9 +184,9 @@ void sk_cleanup(void)
}
}
SockAddr sk_namelookup(const char *host, char **canonicalname, int address_family)
SockAddr *sk_namelookup(const char *host, char **canonicalname, int address_family)
{
SockAddr ret = snew(struct SockAddr_tag);
SockAddr *ret = snew(SockAddr);
#ifndef NO_IPV6
struct addrinfo hints;
int err;
@ -198,7 +198,7 @@ SockAddr sk_namelookup(const char *host, char **canonicalname, int address_famil
char realhost[8192];
/* Clear the structure and default to IPv4. */
memset(ret, 0, sizeof(struct SockAddr_tag));
memset(ret, 0, sizeof(SockAddr));
ret->superfamily = UNRESOLVED;
*realhost = '\0';
ret->error = NULL;
@ -277,9 +277,9 @@ SockAddr sk_namelookup(const char *host, char **canonicalname, int address_famil
return ret;
}
SockAddr sk_nonamelookup(const char *host)
SockAddr *sk_nonamelookup(const char *host)
{
SockAddr ret = snew(struct SockAddr_tag);
SockAddr *ret = snew(SockAddr);
ret->error = NULL;
ret->superfamily = UNRESOLVED;
strncpy(ret->hostname, host, lenof(ret->hostname));
@ -293,7 +293,7 @@ SockAddr sk_nonamelookup(const char *host)
return ret;
}
static int sk_nextaddr(SockAddr addr, SockAddrStep *step)
static int sk_nextaddr(SockAddr *addr, SockAddrStep *step)
{
#ifndef NO_IPV6
if (step->ai && step->ai->ai_next) {
@ -311,7 +311,7 @@ static int sk_nextaddr(SockAddr addr, SockAddrStep *step)
#endif
}
void sk_getaddr(SockAddr addr, char *buf, int buflen)
void sk_getaddr(SockAddr *addr, char *buf, int buflen)
{
if (addr->superfamily == UNRESOLVED || addr->superfamily == UNIX) {
strncpy(buf, addr->hostname, buflen);
@ -344,10 +344,10 @@ void sk_getaddr(SockAddr addr, char *buf, int buflen)
* rather than dynamically allocated - that should clue in anyone
* writing a call to it that something is weird about it.)
*/
static struct SockAddr_tag sk_extractaddr_tmp(
SockAddr addr, const SockAddrStep *step)
static SockAddr sk_extractaddr_tmp(
SockAddr *addr, const SockAddrStep *step)
{
struct SockAddr_tag toret;
SockAddr toret;
toret = *addr; /* structure copy */
toret.refcount = 1;
@ -363,7 +363,7 @@ static struct SockAddr_tag sk_extractaddr_tmp(
return toret;
}
int sk_addr_needs_port(SockAddr addr)
int sk_addr_needs_port(SockAddr *addr)
{
if (addr->superfamily == UNRESOLVED || addr->superfamily == UNIX) {
return FALSE;
@ -399,7 +399,7 @@ static int sockaddr_is_loopback(struct sockaddr *sa)
}
}
int sk_address_is_local(SockAddr addr)
int sk_address_is_local(SockAddr *addr)
{
if (addr->superfamily == UNRESOLVED)
return 0; /* we don't know; assume not */
@ -419,12 +419,12 @@ int sk_address_is_local(SockAddr addr)
}
}
int sk_address_is_special_local(SockAddr addr)
int sk_address_is_special_local(SockAddr *addr)
{
return addr->superfamily == UNIX;
}
int sk_addrtype(SockAddr addr)
int sk_addrtype(SockAddr *addr)
{
SockAddrStep step;
int family;
@ -438,7 +438,7 @@ int sk_addrtype(SockAddr addr)
ADDRTYPE_NAME);
}
void sk_addrcopy(SockAddr addr, char *buf)
void sk_addrcopy(SockAddr *addr, char *buf)
{
SockAddrStep step;
int family;
@ -463,7 +463,7 @@ void sk_addrcopy(SockAddr addr, char *buf)
#endif
}
void sk_addr_free(SockAddr addr)
void sk_addr_free(SockAddr *addr)
{
if (--addr->refcount > 0)
return;
@ -476,22 +476,22 @@ void sk_addr_free(SockAddr addr)
sfree(addr);
}
SockAddr sk_addr_dup(SockAddr addr)
SockAddr *sk_addr_dup(SockAddr *addr)
{
addr->refcount++;
return addr;
}
static Plug sk_net_plug(Socket sock, Plug p)
static Plug *sk_net_plug(Socket *sock, Plug *p)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
Plug ret = s->plug;
Plug *ret = s->plug;
if (p)
s->plug = p;
return ret;
}
static void sk_net_flush(Socket s)
static void sk_net_flush(Socket *s)
{
/*
* We send data to the socket as soon as we can anyway,
@ -499,13 +499,13 @@ static void sk_net_flush(Socket s)
*/
}
static void sk_net_close(Socket s);
static int sk_net_write(Socket s, const void *data, int len);
static int sk_net_write_oob(Socket s, const void *data, int len);
static void sk_net_write_eof(Socket s);
static void sk_net_set_frozen(Socket s, int is_frozen);
static char *sk_net_peer_info(Socket s);
static const char *sk_net_socket_error(Socket s);
static void sk_net_close(Socket *s);
static int sk_net_write(Socket *s, const void *data, int len);
static int sk_net_write_oob(Socket *s, const void *data, int len);
static void sk_net_write_eof(Socket *s);
static void sk_net_set_frozen(Socket *s, int is_frozen);
static char *sk_net_peer_info(Socket *s);
static const char *sk_net_socket_error(Socket *s);
static struct Socket_vtable NetSocket_sockvt = {
sk_net_plug,
@ -519,7 +519,7 @@ static struct Socket_vtable NetSocket_sockvt = {
sk_net_peer_info,
};
static Socket sk_net_accept(accept_ctx_t ctx, Plug plug)
static Socket *sk_net_accept(accept_ctx_t ctx, Plug *plug)
{
int sockfd = ctx.i;
NetSocket *ret;
@ -581,7 +581,7 @@ static int try_connect(NetSocket *sock)
close(sock->s);
{
struct SockAddr_tag thisaddr = sk_extractaddr_tmp(
SockAddr thisaddr = sk_extractaddr_tmp(
sock->addr, &sock->step);
plug_log(sock->plug, 0, &thisaddr, sock->port, NULL, 0);
}
@ -752,15 +752,15 @@ static int try_connect(NetSocket *sock)
add234(sktree, sock);
if (err) {
struct SockAddr_tag thisaddr = sk_extractaddr_tmp(
SockAddr thisaddr = sk_extractaddr_tmp(
sock->addr, &sock->step);
plug_log(sock->plug, 1, &thisaddr, sock->port, strerror(err), err);
}
return err;
}
Socket sk_new(SockAddr addr, int port, int privport, int oobinline,
int nodelay, int keepalive, Plug plug)
Socket *sk_new(SockAddr *addr, int port, int privport, int oobinline,
int nodelay, int keepalive, Plug *plug)
{
NetSocket *ret;
int err;
@ -804,8 +804,8 @@ Socket sk_new(SockAddr addr, int port, int privport, int oobinline,
return &ret->sockvt;
}
Socket sk_newlistener(const char *srcaddr, int port, Plug plug,
int local_host_only, int orig_address_family)
Socket *sk_newlistener(const char *srcaddr, int port, Plug *plug,
int local_host_only, int orig_address_family)
{
int s;
#ifndef NO_IPV6
@ -1009,7 +1009,7 @@ Socket sk_newlistener(const char *srcaddr, int port, Plug plug,
return &ret->sockvt;
}
static void sk_net_close(Socket sock)
static void sk_net_close(Socket *sock)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
@ -1026,7 +1026,7 @@ static void sk_net_close(Socket sock)
sfree(s);
}
void *sk_getxdmdata(Socket sock, int *lenp)
void *sk_getxdmdata(Socket *sock, int *lenp)
{
NetSocket *s;
union sockaddr_union u;
@ -1184,7 +1184,7 @@ void try_send(NetSocket *s)
uxsel_tell(s);
}
static int sk_net_write(Socket sock, const void *buf, int len)
static int sk_net_write(Socket *sock, const void *buf, int len)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
@ -1210,7 +1210,7 @@ static int sk_net_write(Socket sock, const void *buf, int len)
return bufchain_size(&s->output_data);
}
static int sk_net_write_oob(Socket sock, const void *buf, int len)
static int sk_net_write_oob(Socket *sock, const void *buf, int len)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
@ -1239,7 +1239,7 @@ static int sk_net_write_oob(Socket sock, const void *buf, int len)
return s->sending_oob;
}
static void sk_net_write_eof(Socket sock)
static void sk_net_write_eof(Socket *sock)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
@ -1417,7 +1417,7 @@ static void net_select_result(int fd, int event)
* with the next candidate address, if we have
* more than one.
*/
struct SockAddr_tag thisaddr;
SockAddr thisaddr;
assert(s->addr);
thisaddr = sk_extractaddr_tmp(s->addr, &s->step);
@ -1462,17 +1462,17 @@ static void net_select_result(int fd, int event)
* if there's a problem. These functions extract an error message,
* or return NULL if there's no problem.
*/
const char *sk_addr_error(SockAddr addr)
const char *sk_addr_error(SockAddr *addr)
{
return addr->error;
}
static const char *sk_net_socket_error(Socket sock)
static const char *sk_net_socket_error(Socket *sock)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
return s->error;
}
static void sk_net_set_frozen(Socket sock, int is_frozen)
static void sk_net_set_frozen(Socket *sock, int is_frozen)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
if (s->frozen == is_frozen)
@ -1481,7 +1481,7 @@ static void sk_net_set_frozen(Socket sock, int is_frozen)
uxsel_tell(s);
}
static char *sk_net_peer_info(Socket sock)
static char *sk_net_peer_info(Socket *sock)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
union sockaddr_union addr;
@ -1572,9 +1572,9 @@ char *get_hostname(void)
return hostname;
}
SockAddr platform_get_x11_unix_address(const char *sockpath, int displaynum)
SockAddr *platform_get_x11_unix_address(const char *sockpath, int displaynum)
{
SockAddr ret = snew(struct SockAddr_tag);
SockAddr *ret = snew(SockAddr);
int n;
memset(ret, 0, sizeof *ret);
@ -1606,9 +1606,9 @@ SockAddr platform_get_x11_unix_address(const char *sockpath, int displaynum)
return ret;
}
SockAddr unix_sock_addr(const char *path)
SockAddr *unix_sock_addr(const char *path)
{
SockAddr ret = snew(struct SockAddr_tag);
SockAddr *ret = snew(SockAddr);
int n;
memset(ret, 0, sizeof *ret);
@ -1631,7 +1631,7 @@ SockAddr unix_sock_addr(const char *path)
return ret;
}
Socket new_unix_listener(SockAddr listenaddr, Plug plug)
Socket *new_unix_listener(SockAddr *listenaddr, Plug *plug)
{
int s;
union sockaddr_union u;

View File

@ -20,8 +20,8 @@
#include "misc.h"
#include "pageant.h"
SockAddr unix_sock_addr(const char *path);
Socket new_unix_listener(SockAddr listenaddr, Plug plug);
SockAddr *unix_sock_addr(const char *path);
Socket *new_unix_listener(SockAddr *listenaddr, Plug *plug);
void modalfatalbox(const char *p, ...)
{
@ -166,11 +166,11 @@ int chan_no_eager_close(Channel *chan, int s, int r) { return FALSE; }
* except that x11_closing has to signal back to the main loop that
* it's time to terminate.
*/
static void x11_log(Plug p, int type, SockAddr addr, int port,
static void x11_log(Plug *p, int type, SockAddr *addr, int port,
const char *error_msg, int error_code) {}
static void x11_receive(Plug plug, int urgent, char *data, int len) {}
static void x11_sent(Plug plug, int bufsize) {}
static void x11_closing(Plug plug, const char *error_msg, int error_code,
static void x11_receive(Plug *plug, int urgent, char *data, int len) {}
static void x11_sent(Plug *plug, int bufsize) {}
static void x11_closing(Plug *plug, const char *error_msg, int error_code,
int calling_back)
{
time_to_die = TRUE;
@ -741,8 +741,8 @@ void run_agent(void)
const char *err;
char *username, *socketdir;
struct pageant_listen_state *pl;
Plug pl_plug;
Socket sock;
Plug *pl_plug;
Socket *sock;
unsigned long now;
int *fdlist;
int fd;
@ -799,7 +799,7 @@ void run_agent(void)
struct X11Display *disp;
void *greeting;
int greetinglen;
Socket s;
Socket *s;
struct X11Connection *conn;
if (!display) {

View File

@ -20,7 +20,7 @@ typedef struct LocalProxySocket {
char *error;
Plug plug;
Plug *plug;
bufchain pending_output_data;
bufchain pending_input_data;
@ -103,16 +103,16 @@ static int localproxy_errfd_find(void *av, void *bv)
/* basic proxy socket functions */
static Plug sk_localproxy_plug (Socket s, Plug p)
static Plug *sk_localproxy_plug (Socket *s, Plug *p)
{
LocalProxySocket *ps = FROMFIELD(s, LocalProxySocket, sockvt);
Plug ret = ps->plug;
Plug *ret = ps->plug;
if (p)
ps->plug = p;
return ret;
}
static void sk_localproxy_close (Socket s)
static void sk_localproxy_close (Socket *s)
{
LocalProxySocket *ps = FROMFIELD(s, LocalProxySocket, sockvt);
@ -200,7 +200,7 @@ static int localproxy_try_send(LocalProxySocket *ps)
return sent;
}
static int sk_localproxy_write (Socket s, const void *data, int len)
static int sk_localproxy_write (Socket *s, const void *data, int len)
{
LocalProxySocket *ps = FROMFIELD(s, LocalProxySocket, sockvt);
@ -213,7 +213,7 @@ static int sk_localproxy_write (Socket s, const void *data, int len)
return bufchain_size(&ps->pending_output_data);
}
static int sk_localproxy_write_oob (Socket s, const void *data, int len)
static int sk_localproxy_write_oob (Socket *s, const void *data, int len)
{
/*
* oob data is treated as inband; nasty, but nothing really
@ -222,7 +222,7 @@ static int sk_localproxy_write_oob (Socket s, const void *data, int len)
return sk_localproxy_write(s, data, len);
}
static void sk_localproxy_write_eof (Socket s)
static void sk_localproxy_write_eof (Socket *s)
{
LocalProxySocket *ps = FROMFIELD(s, LocalProxySocket, sockvt);
@ -232,13 +232,13 @@ static void sk_localproxy_write_eof (Socket s)
localproxy_try_send(ps);
}
static void sk_localproxy_flush (Socket s)
static void sk_localproxy_flush (Socket *s)
{
/* LocalProxySocket *ps = FROMFIELD(s, LocalProxySocket, sockvt); */
/* do nothing */
}
static void sk_localproxy_set_frozen (Socket s, int is_frozen)
static void sk_localproxy_set_frozen (Socket *s, int is_frozen)
{
LocalProxySocket *ps = FROMFIELD(s, LocalProxySocket, sockvt);
@ -251,7 +251,7 @@ static void sk_localproxy_set_frozen (Socket s, int is_frozen)
uxsel_set(ps->from_cmd, 1, localproxy_select_result);
}
static const char * sk_localproxy_socket_error (Socket s)
static const char * sk_localproxy_socket_error (Socket *s)
{
LocalProxySocket *ps = FROMFIELD(s, LocalProxySocket, sockvt);
return ps->error;
@ -315,10 +315,10 @@ static const Socket_vtable LocalProxySocket_sockvt = {
NULL, /* peer_info */
};
Socket platform_new_connection(SockAddr addr, const char *hostname,
int port, int privport,
int oobinline, int nodelay, int keepalive,
Plug plug, Conf *conf)
Socket *platform_new_connection(SockAddr *addr, const char *hostname,
int port, int privport,
int oobinline, int nodelay, int keepalive,
Plug *plug, Conf *conf)
{
char *cmd;

View File

@ -60,7 +60,7 @@
#endif
#endif
typedef struct pty_tag *Pty;
typedef struct Pty Pty;
/*
* The pty_signal_pipe, along with the SIGCHLD handler, must be
@ -68,7 +68,7 @@ typedef struct pty_tag *Pty;
*/
static int pty_signal_pipe[2] = { -1, -1 }; /* obviously bogus initial val */
struct pty_tag {
struct Pty {
Conf *conf;
int master_fd, slave_fd;
Frontend *frontend;
@ -88,8 +88,8 @@ struct pty_tag {
*/
static int pty_compare_by_fd(void *av, void *bv)
{
Pty a = (Pty)av;
Pty b = (Pty)bv;
Pty *a = (Pty *)av;
Pty *b = (Pty *)bv;
if (a->master_fd < b->master_fd)
return -1;
@ -101,7 +101,7 @@ static int pty_compare_by_fd(void *av, void *bv)
static int pty_find_by_fd(void *av, void *bv)
{
int a = *(int *)av;
Pty b = (Pty)bv;
Pty *b = (Pty *)bv;
if (a < b->master_fd)
return -1;
@ -119,8 +119,8 @@ static tree234 *ptys_by_fd = NULL;
*/
static int pty_compare_by_pid(void *av, void *bv)
{
Pty a = (Pty)av;
Pty b = (Pty)bv;
Pty *a = (Pty *)av;
Pty *b = (Pty *)bv;
if (a->child_pid < b->child_pid)
return -1;
@ -132,7 +132,7 @@ static int pty_compare_by_pid(void *av, void *bv)
static int pty_find_by_pid(void *av, void *bv)
{
pid_t a = *(pid_t *)av;
Pty b = (Pty)bv;
Pty *b = (Pty *)bv;
if (a < b->child_pid)
return -1;
@ -158,7 +158,7 @@ static tree234 *ptys_by_pid = NULL;
* be single-instance, so we can declare utmp-related variables
* here.
*/
static Pty single_pty = NULL;
static Pty *single_pty = NULL;
#ifndef OMIT_UTMP
static pid_t pty_utmp_helper_pid = -1;
@ -176,8 +176,8 @@ char **pty_argv;
char *pty_osx_envrestore_prefix;
static void pty_close(Pty pty);
static void pty_try_write(Pty pty);
static void pty_close(Pty *pty);
static void pty_try_write(Pty *pty);
#ifndef OMIT_UTMP
static void setup_utmp(char *ttyname, char *location)
@ -286,7 +286,7 @@ static void fatal_sig_handler(int signum)
}
#endif
static int pty_open_slave(Pty pty)
static int pty_open_slave(Pty *pty)
{
if (pty->slave_fd < 0) {
pty->slave_fd = open(pty->name, O_RDWR);
@ -296,7 +296,7 @@ static int pty_open_slave(Pty pty)
return pty->slave_fd;
}
static void pty_open_master(Pty pty)
static void pty_open_master(Pty *pty)
{
#ifdef BSD_PTYS
const char chars1[] = "pqrstuvwxyz";
@ -405,9 +405,9 @@ static void pty_open_master(Pty pty)
add234(ptys_by_fd, pty);
}
static Pty new_pty_struct(void)
static Pty *new_pty_struct(void)
{
Pty pty = snew(struct pty_tag);
Pty *pty = snew(Pty);
pty->conf = NULL;
bufchain_init(&pty->output_data);
return pty;
@ -430,7 +430,7 @@ void pty_pre_init(void)
{
#ifndef NO_PTY_PRE_INIT
Pty pty;
Pty *pty;
#ifndef OMIT_UTMP
pid_t pid;
@ -580,7 +580,7 @@ void pty_pre_init(void)
}
void pty_real_select_result(Pty pty, int event, int status)
void pty_real_select_result(Pty *pty, int event, int status)
{
char buf[4096];
int ret;
@ -684,7 +684,7 @@ void pty_real_select_result(Pty pty, int event, int status)
void pty_select_result(int fd, int event)
{
Pty pty;
Pty *pty;
if (fd == pty_signal_pipe[0]) {
pid_t pid;
@ -711,7 +711,7 @@ void pty_select_result(int fd, int event)
}
}
static void pty_uxsel_setup(Pty pty)
static void pty_uxsel_setup(Pty *pty)
{
int rwx;
@ -746,7 +746,7 @@ static const char *pty_init(Frontend *frontend, Backend **backend_handle,
int got_windowid;
long windowid;
#endif
Pty pty;
Pty *pty;
if (single_pty) {
pty = single_pty;
@ -1041,7 +1041,7 @@ static const char *pty_init(Frontend *frontend, Backend **backend_handle,
static void pty_reconfig(Backend *be, Conf *conf)
{
Pty pty = FROMFIELD(be, struct pty_tag, backend);
Pty *pty = FROMFIELD(be, Pty, backend);
/*
* We don't have much need to reconfigure this backend, but
* unfortunately we do need to pick up the setting of Close On
@ -1055,7 +1055,7 @@ static void pty_reconfig(Backend *be, Conf *conf)
*/
static void pty_free(Backend *be)
{
Pty pty = FROMFIELD(be, struct pty_tag, backend);
Pty *pty = FROMFIELD(be, Pty, backend);
/* Either of these may fail `not found'. That's fine with us. */
del234(ptys_by_pid, pty);
@ -1076,7 +1076,7 @@ static void pty_free(Backend *be)
}
}
static void pty_try_write(Pty pty)
static void pty_try_write(Pty *pty)
{
void *data;
int len, ret;
@ -1108,7 +1108,7 @@ static void pty_try_write(Pty pty)
*/
static int pty_send(Backend *be, const char *buf, int len)
{
Pty pty = FROMFIELD(be, struct pty_tag, backend);
Pty *pty = FROMFIELD(be, Pty, backend);
if (pty->master_fd < 0)
return 0; /* ignore all writes if fd closed */
@ -1119,7 +1119,7 @@ static int pty_send(Backend *be, const char *buf, int len)
return bufchain_size(&pty->output_data);
}
static void pty_close(Pty pty)
static void pty_close(Pty *pty)
{
if (pty->master_fd >= 0) {
close(pty->master_fd);
@ -1138,7 +1138,7 @@ static void pty_close(Pty pty)
*/
static int pty_sendbuffer(Backend *be)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
return 0;
}
@ -1147,7 +1147,7 @@ static int pty_sendbuffer(Backend *be)
*/
static void pty_size(Backend *be, int width, int height)
{
Pty pty = FROMFIELD(be, struct pty_tag, backend);
Pty *pty = FROMFIELD(be, Pty, backend);
struct winsize size;
pty->term_width = width;
@ -1168,7 +1168,7 @@ static void pty_size(Backend *be, int width, int height)
*/
static void pty_special(Backend *be, SessionSpecialCode code, int arg)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
/* Do nothing! */
return;
}
@ -1179,7 +1179,7 @@ static void pty_special(Backend *be, SessionSpecialCode code, int arg)
*/
static const SessionSpecial *pty_get_specials(Backend *be)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
/*
* Hmm. When I get round to having this actually usable, it
* might be quite nice to have the ability to deliver a few
@ -1191,43 +1191,43 @@ static const SessionSpecial *pty_get_specials(Backend *be)
static int pty_connected(Backend *be)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
return TRUE;
}
static int pty_sendok(Backend *be)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
return 1;
}
static void pty_unthrottle(Backend *be, int backlog)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
/* do nothing */
}
static int pty_ldisc(Backend *be, int option)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
return 0; /* neither editing nor echoing */
}
static void pty_provide_ldisc(Backend *be, Ldisc *ldisc)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
/* This is a stub. */
}
static void pty_provide_logctx(Backend *be, LogContext *logctx)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
/* This is a stub. */
}
static int pty_exitcode(Backend *be)
{
Pty pty = FROMFIELD(be, struct pty_tag, backend);
Pty *pty = FROMFIELD(be, Pty, backend);
if (!pty->finished)
return -1; /* not dead yet */
else
@ -1236,7 +1236,7 @@ static int pty_exitcode(Backend *be)
static int pty_cfg_info(Backend *be)
{
/* Pty pty = FROMFIELD(be, struct pty_tag, backend); */
/* Pty *pty = FROMFIELD(be, Pty, backend); */
return 0;
}

View File

@ -17,14 +17,15 @@
#define SERIAL_MAX_BACKLOG 4096
typedef struct serial_backend_data {
typedef struct Serial Serial;
struct Serial {
Frontend *frontend;
int fd;
int finished;
int inbufsize;
bufchain output_data;
Backend backend;
} *Serial;
};
/*
* We store our serial backends in a tree sorted by fd, so that
@ -33,8 +34,8 @@ typedef struct serial_backend_data {
*/
static int serial_compare_by_fd(void *av, void *bv)
{
Serial a = (Serial)av;
Serial b = (Serial)bv;
Serial *a = (Serial *)av;
Serial *b = (Serial *)bv;
if (a->fd < b->fd)
return -1;
@ -46,7 +47,7 @@ static int serial_compare_by_fd(void *av, void *bv)
static int serial_find_by_fd(void *av, void *bv)
{
int a = *(int *)av;
Serial b = (Serial)bv;
Serial *b = (Serial *)bv;
if (a < b->fd)
return -1;
@ -58,10 +59,10 @@ static int serial_find_by_fd(void *av, void *bv)
static tree234 *serial_by_fd = NULL;
static void serial_select_result(int fd, int event);
static void serial_uxsel_setup(Serial serial);
static void serial_try_write(Serial serial);
static void serial_uxsel_setup(Serial *serial);
static void serial_try_write(Serial *serial);
static const char *serial_configure(Serial serial, Conf *conf)
static const char *serial_configure(Serial *serial, Conf *conf)
{
struct termios options;
int bflag, bval, speed, flow, parity;
@ -293,11 +294,11 @@ static const char *serial_init(Frontend *frontend, Backend **backend_handle,
const char *host, int port, char **realhost,
int nodelay, int keepalive)
{
Serial serial;
Serial *serial;
const char *err;
char *line;
serial = snew(struct serial_backend_data);
serial = snew(Serial);
serial->backend.vt = &serial_backend;
*backend_handle = &serial->backend;
@ -339,7 +340,7 @@ static const char *serial_init(Frontend *frontend, Backend **backend_handle,
return NULL;
}
static void serial_close(Serial serial)
static void serial_close(Serial *serial)
{
if (serial->fd >= 0) {
close(serial->fd);
@ -349,7 +350,7 @@ static void serial_close(Serial serial)
static void serial_free(Backend *be)
{
Serial serial = FROMFIELD(be, struct serial_backend_data, backend);
Serial *serial = FROMFIELD(be, Serial, backend);
serial_close(serial);
@ -360,7 +361,7 @@ static void serial_free(Backend *be)
static void serial_reconfig(Backend *be, Conf *conf)
{
Serial serial = FROMFIELD(be, struct serial_backend_data, backend);
Serial *serial = FROMFIELD(be, Serial, backend);
/*
* FIXME: what should we do if this returns an error?
@ -370,7 +371,7 @@ static void serial_reconfig(Backend *be, Conf *conf)
static void serial_select_result(int fd, int event)
{
Serial serial;
Serial *serial;
char buf[4096];
int ret;
int finished = FALSE;
@ -421,7 +422,7 @@ static void serial_select_result(int fd, int event)
}
}
static void serial_uxsel_setup(Serial serial)
static void serial_uxsel_setup(Serial *serial)
{
int rwx = 0;
@ -432,7 +433,7 @@ static void serial_uxsel_setup(Serial serial)
uxsel_set(serial->fd, rwx, serial_select_result);
}
static void serial_try_write(Serial serial)
static void serial_try_write(Serial *serial)
{
void *data;
int len, ret;
@ -464,7 +465,7 @@ static void serial_try_write(Serial serial)
*/
static int serial_send(Backend *be, const char *buf, int len)
{
Serial serial = FROMFIELD(be, struct serial_backend_data, backend);
Serial *serial = FROMFIELD(be, Serial, backend);
if (serial->fd < 0)
return 0;
@ -480,7 +481,7 @@ static int serial_send(Backend *be, const char *buf, int len)
*/
static int serial_sendbuffer(Backend *be)
{
Serial serial = FROMFIELD(be, struct serial_backend_data, backend);
Serial *serial = FROMFIELD(be, Serial, backend);
return bufchain_size(&serial->output_data);
}
@ -498,7 +499,7 @@ static void serial_size(Backend *be, int width, int height)
*/
static void serial_special(Backend *be, SessionSpecialCode code, int arg)
{
Serial serial = FROMFIELD(be, struct serial_backend_data, backend);
Serial *serial = FROMFIELD(be, Serial, backend);
if (serial->fd >= 0 && code == SS_BRK) {
tcsendbreak(serial->fd, 0);
@ -533,7 +534,7 @@ static int serial_sendok(Backend *be)
static void serial_unthrottle(Backend *be, int backlog)
{
Serial serial = FROMFIELD(be, struct serial_backend_data, backend);
Serial *serial = FROMFIELD(be, Serial, backend);
serial->inbufsize = backlog;
serial_uxsel_setup(serial);
}
@ -558,7 +559,7 @@ static void serial_provide_logctx(Backend *be, LogContext *logctx)
static int serial_exitcode(Backend *be)
{
Serial serial = FROMFIELD(be, struct serial_backend_data, backend);
Serial *serial = FROMFIELD(be, Serial, backend);
if (serial->fd >= 0)
return -1; /* still connected */
else

View File

@ -27,8 +27,8 @@
/*
* Functions provided by uxnet.c to help connection sharing.
*/
SockAddr unix_sock_addr(const char *path);
Socket new_unix_listener(SockAddr listenaddr, Plug plug);
SockAddr *unix_sock_addr(const char *path);
Socket *new_unix_listener(SockAddr *listenaddr, Plug *plug);
static char *make_parentdir_name(void)
{
@ -249,13 +249,13 @@ static char *make_dirname(const char *pi_name, char **logtext)
}
int platform_ssh_share(const char *pi_name, Conf *conf,
Plug downplug, Plug upplug, Socket *sock,
Plug *downplug, Plug *upplug, Socket **sock,
char **logtext, char **ds_err, char **us_err,
int can_upstream, int can_downstream)
{
char *dirname, *lockname, *sockname, *err;
int lockfd;
Socket retsock;
Socket *retsock;
/*
* Sort out what we're going to call the directory in which we