X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=portfwd.c;h=e6934d4879bc2f40b0268745c2003d8b99d46edc;hb=7573f3733f3ba896018dc7b1cdd2b3a51b450096;hp=d9941718e5a7a2dc8f69cfdd089102d0c08c17ce;hpb=4dec95f80f106acd3c638ab4d541b885a6a0bf13;p=PuTTY.git diff --git a/portfwd.c b/portfwd.c index d9941718..e6934d48 100644 --- a/portfwd.c +++ b/portfwd.c @@ -390,7 +390,7 @@ const char *pfd_newconnect(Socket *s, char *hostname, int port, pr->dynamic = 0; pr->s = *s = new_connection(addr, dummy_realhost, port, - 0, 1, 0, (Plug) pr, cfg); + 0, 1, 0, 0, (Plug) pr, cfg); if ((err = sk_socket_error(*s)) != NULL) { sfree(pr); return err; @@ -462,7 +462,8 @@ static int pfd_accepting(Plug p, OSSocket sock) sets up a listener on the local machine on (srcaddr:)port */ const char *pfd_addforward(char *desthost, int destport, char *srcaddr, - int port, void *backhandle, const Config *cfg) + int port, void *backhandle, const Config *cfg, + void **sockdata) { static const struct plug_function_table fn_table = { pfd_closing, @@ -501,6 +502,8 @@ const char *pfd_addforward(char *desthost, int destport, char *srcaddr, sk_set_private_ptr(s, pr); + *sockdata = (void *)s; + return NULL; } @@ -519,6 +522,14 @@ void pfd_close(Socket s) sk_close(s); } +/* + * Terminate a listener. + */ +void pfd_terminate(void *sv) +{ + pfd_close((Socket)sv); +} + void pfd_unthrottle(Socket s) { struct PFwdPrivate *pr;