summaryrefslogtreecommitdiff
path: root/sshd.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2006-07-12 22:34:17 +1000
committerDarren Tucker <dtucker@zip.com.au>2006-07-12 22:34:17 +1000
commit4515047e47f26377a46f480ed5929e8ccfa18720 (patch)
treea7485f1794bcab3a46c5f3efcf2a3ba630021be9 /sshd.c
parentba724050263c0bca0a7dffa26462d046c4df7e01 (diff)
- dtucker@cvs.openbsd.org 2006/07/12 11:34:58
[sshd.c servconf.h servconf.c sshd_config.5 auth.c] Add support for conditional directives to sshd_config via a "Match" keyword, which works similarly to the "Host" directive in ssh_config. Lines after a Match line override the default set in the main section if the condition on the Match line is true, eg AllowTcpForwarding yes Match User anoncvs AllowTcpForwarding no will allow port forwarding by all users except "anoncvs". Currently only a very small subset of directives are supported. ok djm@
Diffstat (limited to 'sshd.c')
-rw-r--r--sshd.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/sshd.c b/sshd.c
index f3fe9d184..497525df8 100644
--- a/sshd.c
+++ b/sshd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sshd.c,v 1.336 2006/07/11 20:07:25 stevesk Exp $ */ 1/* $OpenBSD: sshd.c,v 1.337 2006/07/12 11:34:58 dtucker Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -219,12 +219,15 @@ int *startup_pipes = NULL;
219int startup_pipe; /* in child */ 219int startup_pipe; /* in child */
220 220
221/* variables used for privilege separation */ 221/* variables used for privilege separation */
222int use_privsep; 222int use_privsep = -1;
223struct monitor *pmonitor = NULL; 223struct monitor *pmonitor = NULL;
224 224
225/* global authentication context */ 225/* global authentication context */
226Authctxt *the_authctxt = NULL; 226Authctxt *the_authctxt = NULL;
227 227
228/* sshd_config buffer */
229Buffer cfg;
230
228/* message to be displayed after login */ 231/* message to be displayed after login */
229Buffer loginmsg; 232Buffer loginmsg;
230 233
@@ -916,7 +919,6 @@ main(int ac, char **av)
916 Key *key; 919 Key *key;
917 Authctxt *authctxt; 920 Authctxt *authctxt;
918 int ret, key_used = 0; 921 int ret, key_used = 0;
919 Buffer cfg;
920 922
921#ifdef HAVE_SECUREWARE 923#ifdef HAVE_SECUREWARE
922 (void)set_auth_parameters(ac, av); 924 (void)set_auth_parameters(ac, av);
@@ -1036,7 +1038,7 @@ main(int ac, char **av)
1036 case 'o': 1038 case 'o':
1037 line = xstrdup(optarg); 1039 line = xstrdup(optarg);
1038 if (process_server_config_line(&options, line, 1040 if (process_server_config_line(&options, line,
1039 "command-line", 0) != 0) 1041 "command-line", 0, NULL, NULL, NULL, NULL) != 0)
1040 exit(1); 1042 exit(1);
1041 xfree(line); 1043 xfree(line);
1042 break; 1044 break;
@@ -1094,11 +1096,8 @@ main(int ac, char **av)
1094 else 1096 else
1095 load_server_config(config_file_name, &cfg); 1097 load_server_config(config_file_name, &cfg);
1096 1098
1097 parse_server_config(&options, 1099 parse_server_config(&options, rexeced_flag ? "rexec" : config_file_name,
1098 rexeced_flag ? "rexec" : config_file_name, &cfg); 1100 &cfg, NULL, NULL, NULL);
1099
1100 if (!rexec_flag)
1101 buffer_free(&cfg);
1102 1101
1103 seed_rng(); 1102 seed_rng();
1104 1103