mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
eefebaaa9e
Nearly every part of the code that ever handles a full backend structure has historically done it using a pair of pointer variables, one pointing at a constant struct full of function pointers, and the other pointing to a 'void *' state object that's passed to each of those. While I'm modernising the rest of the code, this seems like a good time to turn that into the same more or less type-safe and less cumbersome system as I'm using for other parts of the code, such as Socket, Plug, BinaryPacketProtocol and so forth: the Backend structure contains a vtable pointer, and a system of macro wrappers handles dispatching through that vtable.
32 lines
808 B
C
32 lines
808 B
C
/*
|
|
* Linking module for PuTTY proper: list the available backends
|
|
* including ssh.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include "putty.h"
|
|
|
|
/*
|
|
* This appname is not strictly in the right place, since Plink
|
|
* also uses this module. However, Plink doesn't currently use any
|
|
* of the dialog-box sorts of things that make use of appname, so
|
|
* it shouldn't do any harm here. I'm trying to avoid having to
|
|
* have tiny little source modules containing nothing but
|
|
* declarations of appname, for as long as I can...
|
|
*/
|
|
const char *const appname = "PuTTY";
|
|
|
|
#ifdef TELNET_DEFAULT
|
|
const int be_default_protocol = PROT_TELNET;
|
|
#else
|
|
const int be_default_protocol = PROT_SSH;
|
|
#endif
|
|
|
|
const struct Backend_vtable *const backends[] = {
|
|
&ssh_backend,
|
|
&telnet_backend,
|
|
&rlogin_backend,
|
|
&raw_backend,
|
|
NULL
|
|
};
|