sets up a listener on the local machine on (srcaddr:)port
*/
char *pfd_addforward(char *desthost, int destport, char *srcaddr, int port,
- void *backhandle)
+ void *backhandle, int acceptall)
{
static struct plug_function_table fn_table = {
pfd_closing,
pr->waiting = NULL;
pr->backhandle = backhandle;
- pr->s = s = new_listener(srcaddr, port, (Plug) pr, !cfg.lport_acceptall);
+ pr->s = s = new_listener(srcaddr, port, (Plug) pr, !acceptall);
if ((err = sk_socket_error(s)) != NULL) {
sfree(pr);
return err;
if (sport && dport) {
if (type == 'L') {
pfd_addforward(host, dport, *saddr ? saddr : NULL,
- sport, ssh);
+ sport, ssh, ssh->cfg.lport_acceptall);
logeventf(ssh, "Local port %.*s%.*s%.*s%.*s%d%.*s"
" forwarding to %s:%.*s%.*s%d%.*s",
(int)(*saddr?strlen(saddr):0), *saddr?saddr:NULL,
if (sport && dport) {
if (type == 'L') {
pfd_addforward(host, dport, *saddr ? saddr : NULL,
- sport, ssh);
+ sport, ssh, ssh->cfg.lport_acceptall);
logeventf(ssh, "Local port %.*s%.*s%.*s%.*s%d%.*s"
" forwarding to %s:%.*s%.*s%d%.*s",
(int)(*saddr?strlen(saddr):0), *saddr?saddr:NULL,
/* Exports from portfwd.c */
extern char *pfd_newconnect(Socket * s, char *hostname, int port, void *c);
extern char *pfd_addforward(char *desthost, int destport, char *srcaddr,
- int port, void *backhandle);
+ int port, void *backhandle, int acceptall);
extern void pfd_close(Socket s);
extern int pfd_send(Socket s, char *data, int len);
extern void pfd_confirm(Socket s);