X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=portfwd.c;h=919d27d831731b1c9b8545c61192ae5f61280276;hb=4abd468e14d110f2085f7a693687a9c19e1d47e1;hp=43353988e5f21ee80fd49ee1edc8624072cdd0d4;hpb=c87fa98d09343621fc4ae7c3c8fb197d0feeaa67;p=PuTTY.git 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;