mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
b851d748be
In the course of reworking the socket vtable system, I noticed that both sshshare.c and x11fwd.c independently invented the idea of a Plug none of whose methods do anything. We don't need more than one of those, so let's centralise the idea to somewhere it can be easily reused.
43 lines
1.0 KiB
C
43 lines
1.0 KiB
C
/*
|
|
* nullplug.c: provide a null implementation of the Plug vtable which
|
|
* ignores all calls. Occasionally useful in cases where we want to
|
|
* make a network connection just to see if it works, but not do
|
|
* anything with it afterwards except close it again.
|
|
*/
|
|
|
|
#include "putty.h"
|
|
|
|
static void nullplug_socket_log(Plug plug, int type, SockAddr addr, int port,
|
|
const char *error_msg, int error_code)
|
|
{
|
|
}
|
|
|
|
static void nullplug_closing(Plug plug, const char *error_msg, int error_code,
|
|
int calling_back)
|
|
{
|
|
}
|
|
|
|
static void nullplug_receive(Plug plug, int urgent, char *data, int len)
|
|
{
|
|
}
|
|
|
|
static void nullplug_sent(Plug plug, int bufsize)
|
|
{
|
|
}
|
|
|
|
static const Plug_vtable nullplug_plugvt = {
|
|
nullplug_socket_log,
|
|
nullplug_closing,
|
|
nullplug_receive,
|
|
nullplug_sent,
|
|
NULL
|
|
};
|
|
|
|
static const Plug_vtable *nullplug_plugvt_ptr = &nullplug_plugvt;
|
|
|
|
/*
|
|
* There's a singleton instance of nullplug, because it's not
|
|
* interesting enough to worry about making more than one of them.
|
|
*/
|
|
Plug nullplug = &nullplug_plugvt_ptr;
|