X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/5471d09ad63fc6216fb9c2a3b52ca9c93821a054..8eebd22198133e95ce25af1dd15dead0a5389371:/portfwd.c diff --git a/portfwd.c b/portfwd.c index 43353988..919d27d8 100644 --- a/portfwd.c +++ b/portfwd.c @@ -138,7 +138,7 @@ char *pfd_newconnect(Socket *s, char *hostname, int port, void *c) pr->ready = 1; pr->c = c; - pr->s = *s = sk_new(addr, port, 0, 1, (Plug) pr); + pr->s = *s = new_connection(addr, dummy_realhost, port, 0, 1, 0, (Plug) pr); if ((err = sk_socket_error(*s))) { sfree(pr); return err; @@ -153,9 +153,8 @@ char *pfd_newconnect(Socket *s, char *hostname, int port, void *c) called when someone connects to the local port */ -static int pfd_accepting(Plug p, struct sockaddr *addr, void *sock) +static int pfd_accepting(Plug p, void *sock) { - /* for now always accept this socket */ static struct plug_function_table fn_table = { pfd_closing, pfd_receive, @@ -163,13 +162,9 @@ static int pfd_accepting(Plug p, struct sockaddr *addr, void *sock) NULL }; struct PFwdPrivate *pr, *org; - struct sockaddr_in *sin = (struct sockaddr_in *)addr; Socket s; char *err; - if (ntohl(sin->sin_addr.s_addr) != 0x7F000001 && !cfg.lport_acceptall) - return 1; /* denied */ - org = (struct PFwdPrivate *)p; pr = (struct PFwdPrivate *) smalloc(sizeof(struct PFwdPrivate)); pr->fn = &fn_table; @@ -205,7 +200,7 @@ static int pfd_accepting(Plug p, struct sockaddr *addr, void *sock) /* Add a new forwarding from port -> desthost:destport - sets up a listenner on the local machine on port + sets up a listener on the local machine on port */ char *pfd_addforward(char *desthost, int destport, int port) { @@ -232,7 +227,7 @@ char *pfd_addforward(char *desthost, int destport, int port) pr->ready = 0; pr->waiting = NULL; - pr->s = s = sk_newlistenner(port, (Plug) pr); + pr->s = s = new_listener(port, (Plug) pr, !cfg.lport_acceptall); if ((err = sk_socket_error(s))) { sfree(pr); return err;