version 1.19, 2010/06/17 07:07:30 |
version 1.20, 2010/06/25 07:14:46 |
|
|
} |
} |
|
|
if (ftype == MUX_FWD_LOCAL || ftype == MUX_FWD_DYNAMIC) { |
if (ftype == MUX_FWD_LOCAL || ftype == MUX_FWD_DYNAMIC) { |
if (options.num_local_forwards + 1 >= |
if (channel_setup_local_fwd_listener(fwd.listen_host, |
SSH_MAX_FORWARDS_PER_DIRECTION || |
|
channel_setup_local_fwd_listener(fwd.listen_host, |
|
fwd.listen_port, fwd.connect_host, fwd.connect_port, |
fwd.listen_port, fwd.connect_host, fwd.connect_port, |
options.gateway_ports) < 0) { |
options.gateway_ports) < 0) { |
fail: |
fail: |
|
|
} else { |
} else { |
struct mux_channel_confirm_ctx *fctx; |
struct mux_channel_confirm_ctx *fctx; |
|
|
if (options.num_remote_forwards + 1 >= |
if (channel_request_remote_forwarding(fwd.listen_host, |
SSH_MAX_FORWARDS_PER_DIRECTION || |
|
channel_request_remote_forwarding(fwd.listen_host, |
|
fwd.listen_port, fwd.connect_host, fwd.connect_port) < 0) |
fwd.listen_port, fwd.connect_host, fwd.connect_port) < 0) |
goto fail; |
goto fail; |
add_remote_forward(&options, &fwd); |
add_remote_forward(&options, &fwd); |
fctx = xcalloc(1, sizeof(*fctx)); |
fctx = xcalloc(1, sizeof(*fctx)); |
fctx->cid = c->self; |
fctx->cid = c->self; |
fctx->rid = rid; |
fctx->rid = rid; |
fctx->fid = options.num_remote_forwards-1; |
fctx->fid = options.num_remote_forwards - 1; |
client_register_global_confirm(mux_confirm_remote_forward, |
client_register_global_confirm(mux_confirm_remote_forward, |
fctx); |
fctx); |
freefwd = 0; |
freefwd = 0; |