version 1.108, 2003/04/02 09:48:07 |
version 1.109, 2003/04/08 20:21:28 |
|
|
if (*s == 0) |
if (*s == 0) |
goto out; |
goto out; |
if (strlen(s) < 2 || s[0] != '-' || !(s[1] == 'L' || s[1] == 'R')) { |
if (strlen(s) < 2 || s[0] != '-' || !(s[1] == 'L' || s[1] == 'R')) { |
log("Invalid command."); |
logit("Invalid command."); |
goto out; |
goto out; |
} |
} |
if (s[1] == 'L') |
if (s[1] == 'L') |
local = 1; |
local = 1; |
if (!local && !compat20) { |
if (!local && !compat20) { |
log("Not supported for SSH protocol version 1."); |
logit("Not supported for SSH protocol version 1."); |
goto out; |
goto out; |
} |
} |
s += 2; |
s += 2; |
|
|
sfwd_port, buf, sfwd_host_port) != 3 && |
sfwd_port, buf, sfwd_host_port) != 3 && |
sscanf(s, "%5[0-9]/%255[^/]/%5[0-9]", |
sscanf(s, "%5[0-9]/%255[^/]/%5[0-9]", |
sfwd_port, buf, sfwd_host_port) != 3) { |
sfwd_port, buf, sfwd_host_port) != 3) { |
log("Bad forwarding specification."); |
logit("Bad forwarding specification."); |
goto out; |
goto out; |
} |
} |
if ((fwd_port = a2port(sfwd_port)) == 0 || |
if ((fwd_port = a2port(sfwd_port)) == 0 || |
(fwd_host_port = a2port(sfwd_host_port)) == 0) { |
(fwd_host_port = a2port(sfwd_host_port)) == 0) { |
log("Bad forwarding port(s)."); |
logit("Bad forwarding port(s)."); |
goto out; |
goto out; |
} |
} |
if (local) { |
if (local) { |
if (channel_setup_local_fwd_listener(fwd_port, buf, |
if (channel_setup_local_fwd_listener(fwd_port, buf, |
fwd_host_port, options.gateway_ports) < 0) { |
fwd_host_port, options.gateway_ports) < 0) { |
log("Port forwarding failed."); |
logit("Port forwarding failed."); |
goto out; |
goto out; |
} |
} |
} else |
} else |
channel_request_remote_forwarding(fwd_port, buf, |
channel_request_remote_forwarding(fwd_port, buf, |
fwd_host_port); |
fwd_host_port); |
log("Forwarding port."); |
logit("Forwarding port."); |
out: |
out: |
signal(SIGINT, handler); |
signal(SIGINT, handler); |
enter_raw_mode(); |
enter_raw_mode(); |
|
|
case 'R': |
case 'R': |
if (compat20) { |
if (compat20) { |
if (datafellows & SSH_BUG_NOREKEY) |
if (datafellows & SSH_BUG_NOREKEY) |
log("Server does not support re-keying"); |
logit("Server does not support re-keying"); |
else |
else |
need_rekeying = 1; |
need_rekeying = 1; |
} |
} |