version 1.31, 2005/03/10 22:40:38 |
version 1.31.2.1, 2006/02/03 02:53:44 |
|
|
/* "environment=" options. */ |
/* "environment=" options. */ |
struct envstring *custom_environment = NULL; |
struct envstring *custom_environment = NULL; |
|
|
|
/* "tunnel=" option. */ |
|
int forced_tun_device = -1; |
|
|
extern ServerOptions options; |
extern ServerOptions options; |
|
|
void |
void |
|
|
xfree(forced_command); |
xfree(forced_command); |
forced_command = NULL; |
forced_command = NULL; |
} |
} |
|
forced_tun_device = -1; |
channel_clear_permitted_opens(); |
channel_clear_permitted_opens(); |
auth_debug_reset(); |
auth_debug_reset(); |
} |
} |
|
|
if (options.allow_tcp_forwarding) |
if (options.allow_tcp_forwarding) |
channel_add_permitted_opens(host, port); |
channel_add_permitted_opens(host, port); |
xfree(patterns); |
xfree(patterns); |
|
goto next_option; |
|
} |
|
cp = "tunnel=\""; |
|
if (strncasecmp(opts, cp, strlen(cp)) == 0) { |
|
char *tun = NULL; |
|
opts += strlen(cp); |
|
tun = xmalloc(strlen(opts) + 1); |
|
i = 0; |
|
while (*opts) { |
|
if (*opts == '"') |
|
break; |
|
tun[i++] = *opts++; |
|
} |
|
if (!*opts) { |
|
debug("%.100s, line %lu: missing end quote", |
|
file, linenum); |
|
auth_debug_add("%.100s, line %lu: missing end quote", |
|
file, linenum); |
|
xfree(tun); |
|
forced_tun_device = -1; |
|
goto bad_option; |
|
} |
|
tun[i] = 0; |
|
forced_tun_device = a2tun(tun, NULL); |
|
xfree(tun); |
|
if (forced_tun_device == SSH_TUNID_ERR) { |
|
debug("%.100s, line %lu: invalid tun device", |
|
file, linenum); |
|
auth_debug_add("%.100s, line %lu: invalid tun device", |
|
file, linenum); |
|
forced_tun_device = -1; |
|
goto bad_option; |
|
} |
|
auth_debug_add("Forced tun device: %d", forced_tun_device); |
|
opts++; |
goto next_option; |
goto next_option; |
} |
} |
next_option: |
next_option: |