it only needs one item from it and that can easily be passed in from
the call site in ssh.c.
git-svn-id: svn://svn.tartarus.org/sgt/putty@2564
cda61777-01e9-0310-a592-
d414129be87e
sets up a listener on the local machine on (srcaddr:)port
*/
char *pfd_addforward(char *desthost, int destport, char *srcaddr, int port,
sets up a listener on the local machine on (srcaddr:)port
*/
char *pfd_addforward(char *desthost, int destport, char *srcaddr, int port,
+ void *backhandle, int acceptall)
{
static struct plug_function_table fn_table = {
pfd_closing,
{
static struct plug_function_table fn_table = {
pfd_closing,
pr->waiting = NULL;
pr->backhandle = backhandle;
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 ((err = sk_socket_error(s)) != NULL) {
sfree(pr);
return err;
if (sport && dport) {
if (type == 'L') {
pfd_addforward(host, dport, *saddr ? saddr : NULL,
if (sport && dport) {
if (type == 'L') {
pfd_addforward(host, dport, *saddr ? saddr : NULL,
+ 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,
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,
if (sport && dport) {
if (type == 'L') {
pfd_addforward(host, dport, *saddr ? saddr : NULL,
+ 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,
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,
/* 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);
extern void pfd_close(Socket s);
extern int pfd_send(Socket s, char *data, int len);
extern void pfd_confirm(Socket s);