1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-06-30 19:12: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

@ -41,7 +41,7 @@ typedef struct HandleSocket {
char *error;
Plug plug;
Plug *plug;
const Socket_vtable *sockvt;
} HandleSocket;
@ -105,16 +105,16 @@ static void handle_sentdata(struct handle *h, int new_backlog)
plug_sent(hs->plug, new_backlog);
}
static Plug sk_handle_plug(Socket s, Plug p)
static Plug *sk_handle_plug(Socket *s, Plug *p)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
Plug ret = hs->plug;
Plug *ret = hs->plug;
if (p)
hs->plug = p;
return ret;
}
static void sk_handle_close(Socket s)
static void sk_handle_close(Socket *s)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
@ -134,14 +134,14 @@ static void sk_handle_close(Socket s)
sfree(hs);
}
static int sk_handle_write(Socket s, const void *data, int len)
static int sk_handle_write(Socket *s, const void *data, int len)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
return handle_write(hs->send_h, data, len);
}
static int sk_handle_write_oob(Socket s, const void *data, int len)
static int sk_handle_write_oob(Socket *s, const void *data, int len)
{
/*
* oob data is treated as inband; nasty, but nothing really
@ -150,14 +150,14 @@ static int sk_handle_write_oob(Socket s, const void *data, int len)
return sk_handle_write(s, data, len);
}
static void sk_handle_write_eof(Socket s)
static void sk_handle_write_eof(Socket *s)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
handle_write_eof(hs->send_h);
}
static void sk_handle_flush(Socket s)
static void sk_handle_flush(Socket *s)
{
/* HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt); */
/* do nothing */
@ -210,7 +210,7 @@ static void handle_socket_unfreeze(void *hsv)
}
}
static void sk_handle_set_frozen(Socket s, int is_frozen)
static void sk_handle_set_frozen(Socket *s, int is_frozen)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
@ -265,13 +265,13 @@ static void sk_handle_set_frozen(Socket s, int is_frozen)
}
}
static const char *sk_handle_socket_error(Socket s)
static const char *sk_handle_socket_error(Socket *s)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
return hs->error;
}
static char *sk_handle_peer_info(Socket s)
static char *sk_handle_peer_info(Socket *s)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
ULONG pid;
@ -318,8 +318,8 @@ static const Socket_vtable HandleSocket_sockvt = {
sk_handle_peer_info,
};
Socket make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
Plug plug, int overlapped)
Socket *make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
Plug *plug, int overlapped)
{
HandleSocket *hs;
int flags = (overlapped ? HANDLE_FLAG_OVERLAPPED : 0);

View File

@ -52,7 +52,7 @@ typedef struct NetSocket NetSocket;
struct NetSocket {
const char *error;
SOCKET s;
Plug plug;
Plug *plug;
bufchain output_data;
int connected;
int writable;
@ -64,7 +64,7 @@ struct NetSocket {
int sending_oob;
int oobinline, nodelay, keepalive, privport;
enum { EOF_NO, EOF_PENDING, EOF_SENT } outgoingeof;
SockAddr addr;
SockAddr *addr;
SockAddrStep step;
int port;
int pending_error; /* in case send() returns error */
@ -79,7 +79,7 @@ struct NetSocket {
const Socket_vtable *sockvt;
};
struct SockAddr_tag {
struct SockAddr {
int refcount;
char *error;
int resolved;
@ -525,10 +525,10 @@ const char *winsock_error_string(int error)
return es->text;
}
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);
unsigned long a;
char realhost[8192];
int hint_family;
@ -541,7 +541,7 @@ SockAddr sk_namelookup(const char *host, char **canonicalname,
AF_UNSPEC);
/* Clear the structure and default to IPv4. */
memset(ret, 0, sizeof(struct SockAddr_tag));
memset(ret, 0, sizeof(SockAddr));
#ifndef NO_IPV6
ret->ais = NULL;
#endif
@ -650,9 +650,9 @@ SockAddr sk_namelookup(const char *host, char **canonicalname,
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->resolved = FALSE;
#ifndef NO_IPV6
@ -667,9 +667,9 @@ SockAddr sk_nonamelookup(const char *host)
return ret;
}
SockAddr sk_namedpipe_addr(const char *pipename)
SockAddr *sk_namedpipe_addr(const char *pipename)
{
SockAddr ret = snew(struct SockAddr_tag);
SockAddr *ret = snew(SockAddr);
ret->error = NULL;
ret->resolved = FALSE;
#ifndef NO_IPV6
@ -684,7 +684,7 @@ SockAddr sk_namedpipe_addr(const char *pipename)
return ret;
}
int sk_nextaddr(SockAddr addr, SockAddrStep *step)
int sk_nextaddr(SockAddr *addr, SockAddrStep *step)
{
#ifndef NO_IPV6
if (step->ai) {
@ -703,7 +703,7 @@ int sk_nextaddr(SockAddr addr, SockAddrStep *step)
}
}
void sk_getaddr(SockAddr addr, char *buf, int buflen)
void sk_getaddr(SockAddr *addr, char *buf, int buflen)
{
SockAddrStep step;
START_STEP(addr, step);
@ -746,10 +746,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;
@ -766,7 +766,7 @@ static struct SockAddr_tag sk_extractaddr_tmp(
return toret;
}
int sk_addr_needs_port(SockAddr addr)
int sk_addr_needs_port(SockAddr *addr)
{
return addr->namedpipe ? FALSE : TRUE;
}
@ -811,7 +811,7 @@ static int ipv4_is_local_addr(struct in_addr addr)
return 0; /* this address is not local */
}
int sk_address_is_local(SockAddr addr)
int sk_address_is_local(SockAddr *addr)
{
SockAddrStep step;
int family;
@ -842,12 +842,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 0; /* no Unix-domain socket analogue here */
}
int sk_addrtype(SockAddr addr)
int sk_addrtype(SockAddr *addr)
{
SockAddrStep step;
int family;
@ -861,7 +861,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;
@ -889,7 +889,7 @@ void sk_addrcopy(SockAddr addr, char *buf)
}
}
void sk_addr_free(SockAddr addr)
void sk_addr_free(SockAddr *addr)
{
if (--addr->refcount > 0)
return;
@ -902,22 +902,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,
@ -925,13 +925,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 const char *sk_net_socket_error(Socket s);
static char *sk_net_peer_info(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 const char *sk_net_socket_error(Socket *s);
static char *sk_net_peer_info(Socket *s);
extern char *do_select(SOCKET skt, int startup);
@ -947,7 +947,7 @@ static const 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)
{
DWORD err;
char *errstr;
@ -1012,7 +1012,7 @@ static DWORD try_connect(NetSocket *sock)
}
{
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);
}
@ -1185,15 +1185,15 @@ static DWORD 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, sock->error, 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;
DWORD err;
@ -1232,8 +1232,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)
{
SOCKET s;
#ifndef NO_IPV6
@ -1408,8 +1408,8 @@ Socket sk_newlistener(const char *srcaddr, int port, Plug plug,
* IPv6 listening socket and link it to this one.
*/
if (address_family == AF_INET && orig_address_family == ADDRTYPE_UNSPEC) {
Socket other = sk_newlistener(srcaddr, port, plug,
local_host_only, ADDRTYPE_IPV6);
Socket *other = sk_newlistener(srcaddr, port, plug,
local_host_only, ADDRTYPE_IPV6);
if (other) {
NetSocket *ns = FROMFIELD(other, NetSocket, sockvt);
@ -1426,7 +1426,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)
{
extern char *do_select(SOCKET skt, int startup);
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
@ -1538,7 +1538,7 @@ void try_send(NetSocket *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);
@ -1558,7 +1558,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);
@ -1581,7 +1581,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);
@ -1622,7 +1622,7 @@ void select_result(WPARAM wParam, LPARAM lParam)
* plug.
*/
if (s->addr) {
struct SockAddr_tag thisaddr = sk_extractaddr_tmp(
SockAddr thisaddr = sk_extractaddr_tmp(
s->addr, &s->step);
plug_log(s->plug, 1, &thisaddr, s->port,
winsock_error_string(err), err);
@ -1780,17 +1780,17 @@ void select_result(WPARAM wParam, LPARAM lParam)
* 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 char *sk_net_peer_info(Socket sock)
static char *sk_net_peer_info(Socket *sock)
{
NetSocket *s = FROMFIELD(sock, NetSocket, sockvt);
#ifdef NO_IPV6
@ -1822,7 +1822,7 @@ static char *sk_net_peer_info(Socket sock)
}
}
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)
@ -1902,11 +1902,11 @@ char *get_hostname(void)
return hostname;
}
SockAddr platform_get_x11_unix_address(const char *display, int displaynum,
SockAddr *platform_get_x11_unix_address(const char *display, int displaynum,
char **canonicalname)
{
SockAddr ret = snew(struct SockAddr_tag);
memset(ret, 0, sizeof(struct SockAddr_tag));
SockAddr *ret = snew(SockAddr);
memset(ret, 0, sizeof(SockAddr));
ret->error = "unix sockets not supported on this platform";
ret->refcount = 1;
return ret;

View File

@ -16,16 +16,16 @@
#include "winsecur.h"
Socket make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
Plug plug, int overlapped);
Socket *make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
Plug *plug, int overlapped);
Socket new_named_pipe_client(const char *pipename, Plug plug)
Socket *new_named_pipe_client(const char *pipename, Plug *plug)
{
HANDLE pipehandle;
PSID usersid, pipeowner;
PSECURITY_DESCRIPTOR psd;
char *err;
Socket ret;
Socket *ret;
assert(strncmp(pipename, "\\\\.\\pipe\\", 9) == 0);
assert(strchr(pipename + 9, '\\') == NULL);

View File

@ -16,8 +16,8 @@
#include "winsecur.h"
Socket make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
Plug plug, int overlapped);
Socket *make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
Plug *plug, int overlapped);
typedef struct NamedPipeServerSocket {
/* Parameters for (repeated) creation of named pipe objects */
@ -31,22 +31,22 @@ typedef struct NamedPipeServerSocket {
struct handle *callback_handle; /* winhandl.c's reference */
/* PuTTY Socket machinery */
Plug plug;
Plug *plug;
char *error;
const Socket_vtable *sockvt;
} NamedPipeServerSocket;
static Plug sk_namedpipeserver_plug(Socket s, Plug p)
static Plug *sk_namedpipeserver_plug(Socket *s, Plug *p)
{
NamedPipeServerSocket *ps = FROMFIELD(s, NamedPipeServerSocket, sockvt);
Plug ret = ps->plug;
Plug *ret = ps->plug;
if (p)
ps->plug = p;
return ret;
}
static void sk_namedpipeserver_close(Socket s)
static void sk_namedpipeserver_close(Socket *s)
{
NamedPipeServerSocket *ps = FROMFIELD(s, NamedPipeServerSocket, sockvt);
@ -63,13 +63,13 @@ static void sk_namedpipeserver_close(Socket s)
sfree(ps);
}
static const char *sk_namedpipeserver_socket_error(Socket s)
static const char *sk_namedpipeserver_socket_error(Socket *s)
{
NamedPipeServerSocket *ps = FROMFIELD(s, NamedPipeServerSocket, sockvt);
return ps->error;
}
static char *sk_namedpipeserver_peer_info(Socket s)
static char *sk_namedpipeserver_peer_info(Socket *s)
{
return NULL;
}
@ -114,7 +114,7 @@ static int create_named_pipe(NamedPipeServerSocket *ps, int first_instance)
return ps->pipehandle != INVALID_HANDLE_VALUE;
}
static Socket named_pipe_accept(accept_ctx_t ctx, Plug plug)
static Socket *named_pipe_accept(accept_ctx_t ctx, Plug *plug)
{
HANDLE conn = (HANDLE)ctx.p;
@ -122,10 +122,10 @@ static Socket named_pipe_accept(accept_ctx_t ctx, Plug plug)
}
/*
* Dummy SockAddr type which just holds a named pipe address. Only
* Dummy SockAddr *type which just holds a named pipe address. Only
* used for calling plug_log from named_pipe_accept_loop() here.
*/
SockAddr sk_namedpipe_addr(const char *pipename);
SockAddr *sk_namedpipe_addr(const char *pipename);
static void named_pipe_accept_loop(NamedPipeServerSocket *ps,
int got_one_already)
@ -216,7 +216,7 @@ static const Socket_vtable NamedPipeServerSocket_sockvt = {
sk_namedpipeserver_peer_info,
};
Socket new_named_pipe_listener(const char *pipename, Plug plug)
Socket *new_named_pipe_listener(const char *pipename, Plug *plug)
{
NamedPipeServerSocket *ret = snew(NamedPipeServerSocket);
ret->sockvt = &NamedPipeServerSocket_sockvt;

View File

@ -13,13 +13,13 @@
#include "network.h"
#include "proxy.h"
Socket make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
Plug plug, int overlapped);
Socket *make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
Plug *plug, int overlapped);
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;
HANDLE us_to_cmd, cmd_from_us;
@ -51,14 +51,14 @@ Socket platform_new_connection(SockAddr addr, const char *hostname,
sa.lpSecurityDescriptor = NULL; /* default */
sa.bInheritHandle = TRUE;
if (!CreatePipe(&us_from_cmd, &cmd_to_us, &sa, 0)) {
Socket ret =
Socket *ret =
new_error_socket("Unable to create pipes for proxy command", plug);
sfree(cmd);
return ret;
}
if (!CreatePipe(&cmd_from_us, &us_to_cmd, &sa, 0)) {
Socket ret =
Socket *ret =
new_error_socket("Unable to create pipes for proxy command", plug);
sfree(cmd);
CloseHandle(us_from_cmd);
@ -67,7 +67,7 @@ Socket platform_new_connection(SockAddr addr, const char *hostname,
}
if (!CreatePipe(&us_from_cmd_err, &cmd_err_to_us, &sa, 0)) {
Socket ret = new_error_socket
Socket *ret = new_error_socket
("Unable to create pipes for proxy command", plug);
sfree(cmd);
CloseHandle(us_from_cmd);

View File

@ -10,7 +10,8 @@
#define SERIAL_MAX_BACKLOG 4096
typedef struct serial_backend_data {
typedef struct Serial Serial;
struct Serial {
HANDLE port;
struct handle *out, *in;
Frontend *frontend;
@ -18,9 +19,9 @@ typedef struct serial_backend_data {
long clearbreak_time;
int break_in_progress;
Backend backend;
} *Serial;
};
static void serial_terminate(Serial serial)
static void serial_terminate(Serial *serial)
{
if (serial->out) {
handle_free(serial->out);
@ -40,7 +41,7 @@ static void serial_terminate(Serial serial)
static int serial_gotdata(struct handle *h, void *data, int len)
{
Serial serial = (Serial)handle_get_privdata(h);
Serial *serial = (Serial *)handle_get_privdata(h);
if (len <= 0) {
const char *error_msg;
@ -72,7 +73,7 @@ static int serial_gotdata(struct handle *h, void *data, int len)
static void serial_sentdata(struct handle *h, int new_backlog)
{
Serial serial = (Serial)handle_get_privdata(h);
Serial *serial = (Serial *)handle_get_privdata(h);
if (new_backlog < 0) {
const char *error_msg = "Error writing to serial device";
@ -88,7 +89,7 @@ static void serial_sentdata(struct handle *h, int new_backlog)
}
}
static const char *serial_configure(Serial serial, HANDLE serport, Conf *conf)
static const char *serial_configure(Serial *serial, HANDLE serport, Conf *conf)
{
DCB dcb;
COMMTIMEOUTS timeouts;
@ -203,12 +204,12 @@ static const char *serial_init(Frontend *frontend, Backend **backend_handle,
Conf *conf, const char *host, int port,
char **realhost, int nodelay, int keepalive)
{
Serial serial;
Serial *serial;
HANDLE serport;
const char *err;
char *serline;
serial = snew(struct serial_backend_data);
serial = snew(Serial);
serial->port = INVALID_HANDLE_VALUE;
serial->out = serial->in = NULL;
serial->bufsize = 0;
@ -283,7 +284,7 @@ static const char *serial_init(Frontend *frontend, Backend **backend_handle,
static void serial_free(Backend *be)
{
Serial serial = FROMFIELD(be, struct serial_backend_data, backend);
Serial *serial = FROMFIELD(be, Serial, backend);
serial_terminate(serial);
expire_timer_context(serial);
@ -292,7 +293,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);
serial_configure(serial, serial->port, conf);
@ -307,7 +308,7 @@ static void serial_reconfig(Backend *be, Conf *conf)
*/
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->out == NULL)
return 0;
@ -321,7 +322,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 serial->bufsize;
}
@ -336,7 +337,7 @@ static void serial_size(Backend *be, int width, int height)
static void serbreak_timer(void *ctx, unsigned long now)
{
Serial serial = (Serial)ctx;
Serial *serial = (Serial *)ctx;
if (now == serial->clearbreak_time && serial->port) {
ClearCommBreak(serial->port);
@ -350,7 +351,7 @@ static void serbreak_timer(void *ctx, unsigned long now)
*/
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->port && code == SS_BRK) {
logevent(serial->frontend, "Starting serial break at user request");
@ -398,7 +399,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);
if (serial->in)
handle_unthrottle(serial->in, backlog);
}
@ -423,7 +424,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->port != INVALID_HANDLE_VALUE)
return -1; /* still connected */
else

View File

@ -116,17 +116,17 @@ static char *make_name(const char *prefix, const char *name)
return retname;
}
Socket new_named_pipe_client(const char *pipename, Plug plug);
Socket new_named_pipe_listener(const char *pipename, Plug plug);
Socket *new_named_pipe_client(const char *pipename, Plug *plug);
Socket *new_named_pipe_listener(const char *pipename, Plug *plug);
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 *name, *mutexname, *pipename;
HANDLE mutex;
Socket retsock;
Socket *retsock;
PSECURITY_DESCRIPTOR psd;
PACL acl;