1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-09 15:23:50 -05:00

Make Socket and Plug into structs.

I think that means that _every_ one of my traitoids is now a struct
containing a vtable pointer as one of its fields (albeit sometimes the
only field), and never just a bare pointer.
This commit is contained in:
Simon Tatham
2018-10-05 07:24:16 +01:00
parent b798230844
commit 884a7df94b
20 changed files with 222 additions and 209 deletions

View File

@ -43,7 +43,7 @@ typedef struct HandleSocket {
Plug *plug;
const SocketVtable *sockvt;
Socket sock;
} HandleSocket;
static int handle_gotdata(struct handle *h, void *data, int len)
@ -107,7 +107,7 @@ static void handle_sentdata(struct handle *h, int new_backlog)
static Plug *sk_handle_plug(Socket *s, Plug *p)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
Plug *ret = hs->plug;
if (p)
hs->plug = p;
@ -116,7 +116,7 @@ static Plug *sk_handle_plug(Socket *s, Plug *p)
static void sk_handle_close(Socket *s)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
if (hs->defer_close) {
hs->deferred_close = TRUE;
@ -136,7 +136,7 @@ static void sk_handle_close(Socket *s)
static int sk_handle_write(Socket *s, const void *data, int len)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
return handle_write(hs->send_h, data, len);
}
@ -152,14 +152,14 @@ static int sk_handle_write_oob(Socket *s, const void *data, int len)
static void sk_handle_write_eof(Socket *s)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
handle_write_eof(hs->send_h);
}
static void sk_handle_flush(Socket *s)
{
/* HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt); */
/* HandleSocket *hs = FROMFIELD(s, HandleSocket, sock); */
/* do nothing */
}
@ -191,7 +191,7 @@ static void handle_socket_unfreeze(void *hsv)
bufchain_consume(&hs->inputdata, len);
hs->defer_close = FALSE;
if (hs->deferred_close) {
sk_handle_close(&hs->sockvt);
sk_handle_close(&hs->sock);
return;
}
@ -212,7 +212,7 @@ static void handle_socket_unfreeze(void *hsv)
static void sk_handle_set_frozen(Socket *s, int is_frozen)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
if (is_frozen) {
switch (hs->frozen) {
@ -267,13 +267,13 @@ static void sk_handle_set_frozen(Socket *s, int is_frozen)
static const char *sk_handle_socket_error(Socket *s)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
return hs->error;
}
static char *sk_handle_peer_info(Socket *s)
{
HandleSocket *hs = FROMFIELD(s, HandleSocket, sockvt);
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
ULONG pid;
static HMODULE kernel32_module;
DECL_WINDOWS_FUNCTION(static, BOOL, GetNamedPipeClientProcessId,
@ -325,7 +325,7 @@ Socket *make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
int flags = (overlapped ? HANDLE_FLAG_OVERLAPPED : 0);
hs = snew(HandleSocket);
hs->sockvt = &HandleSocket_sockvt;
hs->sock.vt = &HandleSocket_sockvt;
hs->plug = plug;
hs->error = NULL;
hs->frozen = UNFROZEN;
@ -343,5 +343,5 @@ Socket *make_handle_socket(HANDLE send_H, HANDLE recv_H, HANDLE stderr_H,
hs->defer_close = hs->deferred_close = FALSE;
return &hs->sockvt;
return &hs->sock;
}