diff options
Diffstat (limited to 'servconf.c')
-rw-r--r-- | servconf.c | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/servconf.c b/servconf.c index becd5b7c5..219a0300f 100644 --- a/servconf.c +++ b/servconf.c | |||
@@ -10,7 +10,7 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include "includes.h" | 12 | #include "includes.h" |
13 | RCSID("$OpenBSD: servconf.c,v 1.144 2005/08/06 10:03:12 dtucker Exp $"); | 13 | RCSID("$OpenBSD: servconf.c,v 1.146 2005/12/08 18:34:11 reyk Exp $"); |
14 | 14 | ||
15 | #include "ssh.h" | 15 | #include "ssh.h" |
16 | #include "log.h" | 16 | #include "log.h" |
@@ -102,6 +102,7 @@ initialize_server_options(ServerOptions *options) | |||
102 | options->authorized_keys_file = NULL; | 102 | options->authorized_keys_file = NULL; |
103 | options->authorized_keys_file2 = NULL; | 103 | options->authorized_keys_file2 = NULL; |
104 | options->num_accept_env = 0; | 104 | options->num_accept_env = 0; |
105 | options->permit_tun = -1; | ||
105 | 106 | ||
106 | /* Needs to be accessable in many places */ | 107 | /* Needs to be accessable in many places */ |
107 | use_privsep = -1; | 108 | use_privsep = -1; |
@@ -232,6 +233,8 @@ fill_default_server_options(ServerOptions *options) | |||
232 | } | 233 | } |
233 | if (options->authorized_keys_file == NULL) | 234 | if (options->authorized_keys_file == NULL) |
234 | options->authorized_keys_file = _PATH_SSH_USER_PERMITTED_KEYS; | 235 | options->authorized_keys_file = _PATH_SSH_USER_PERMITTED_KEYS; |
236 | if (options->permit_tun == -1) | ||
237 | options->permit_tun = SSH_TUNMODE_NO; | ||
235 | 238 | ||
236 | /* Turn privilege separation on by default */ | 239 | /* Turn privilege separation on by default */ |
237 | if (use_privsep == -1) | 240 | if (use_privsep == -1) |
@@ -273,7 +276,8 @@ typedef enum { | |||
273 | sBanner, sUseDNS, sHostbasedAuthentication, | 276 | sBanner, sUseDNS, sHostbasedAuthentication, |
274 | sHostbasedUsesNameFromPacketOnly, sClientAliveInterval, | 277 | sHostbasedUsesNameFromPacketOnly, sClientAliveInterval, |
275 | sClientAliveCountMax, sAuthorizedKeysFile, sAuthorizedKeysFile2, | 278 | sClientAliveCountMax, sAuthorizedKeysFile, sAuthorizedKeysFile2, |
276 | sGssAuthentication, sGssKeyEx, sGssCleanupCreds, sAcceptEnv, | 279 | sGssAuthentication, sGssKeyEx, sGssCleanupCreds, |
280 | sAcceptEnv, sPermitTunnel, | ||
277 | sUsePrivilegeSeparation, | 281 | sUsePrivilegeSeparation, |
278 | sDeprecated, sUnsupported | 282 | sDeprecated, sUnsupported |
279 | } ServerOpCodes; | 283 | } ServerOpCodes; |
@@ -378,6 +382,7 @@ static struct { | |||
378 | { "authorizedkeysfile2", sAuthorizedKeysFile2 }, | 382 | { "authorizedkeysfile2", sAuthorizedKeysFile2 }, |
379 | { "useprivilegeseparation", sUsePrivilegeSeparation}, | 383 | { "useprivilegeseparation", sUsePrivilegeSeparation}, |
380 | { "acceptenv", sAcceptEnv }, | 384 | { "acceptenv", sAcceptEnv }, |
385 | { "permittunnel", sPermitTunnel }, | ||
381 | { NULL, sBadOption } | 386 | { NULL, sBadOption } |
382 | }; | 387 | }; |
383 | 388 | ||
@@ -971,6 +976,28 @@ parse_flag: | |||
971 | } | 976 | } |
972 | break; | 977 | break; |
973 | 978 | ||
979 | case sPermitTunnel: | ||
980 | intptr = &options->permit_tun; | ||
981 | arg = strdelim(&cp); | ||
982 | if (!arg || *arg == '\0') | ||
983 | fatal("%s line %d: Missing yes/point-to-point/" | ||
984 | "ethernet/no argument.", filename, linenum); | ||
985 | value = 0; /* silence compiler */ | ||
986 | if (strcasecmp(arg, "ethernet") == 0) | ||
987 | value = SSH_TUNMODE_ETHERNET; | ||
988 | else if (strcasecmp(arg, "point-to-point") == 0) | ||
989 | value = SSH_TUNMODE_POINTOPOINT; | ||
990 | else if (strcasecmp(arg, "yes") == 0) | ||
991 | value = SSH_TUNMODE_YES; | ||
992 | else if (strcasecmp(arg, "no") == 0) | ||
993 | value = SSH_TUNMODE_NO; | ||
994 | else | ||
995 | fatal("%s line %d: Bad yes/point-to-point/ethernet/" | ||
996 | "no argument: %s", filename, linenum, arg); | ||
997 | if (*intptr == -1) | ||
998 | *intptr = value; | ||
999 | break; | ||
1000 | |||
974 | case sDeprecated: | 1001 | case sDeprecated: |
975 | logit("%s line %d: Deprecated option %s", | 1002 | logit("%s line %d: Deprecated option %s", |
976 | filename, linenum, arg); | 1003 | filename, linenum, arg); |