Damien Miller | 7cc194f | 2014-02-04 11:12:56 +1100 | [diff] [blame] | 1 | /* $OpenBSD: servconf.h,v 1.112 2014/01/29 06:18:35 djm Exp $ */ |
Ben Lindstrom | 05764b9 | 2002-03-05 01:53:02 +0000 | [diff] [blame] | 2 | |
Damien Miller | d4a8b7e | 1999-10-27 13:42:43 +1000 | [diff] [blame] | 3 | /* |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 5 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
| 6 | * All rights reserved |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 7 | * Definitions for server configuration data and for the functions reading it. |
Damien Miller | 4af5130 | 2000-04-16 11:18:38 +1000 | [diff] [blame] | 8 | * |
Damien Miller | e4340be | 2000-09-16 13:29:08 +1100 | [diff] [blame] | 9 | * As far as I am concerned, the code I have written for this software |
| 10 | * can be used freely for any purpose. Any derived versions of this |
| 11 | * software must be clearly marked as such, and if the derived work is |
| 12 | * incompatible with the protocol description in the RFC file, it must be |
| 13 | * called by a name other than "ssh" or "Secure Shell". |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 14 | */ |
Damien Miller | d4a8b7e | 1999-10-27 13:42:43 +1000 | [diff] [blame] | 15 | |
Damien Miller | d4a8b7e | 1999-10-27 13:42:43 +1000 | [diff] [blame] | 16 | #ifndef SERVCONF_H |
| 17 | #define SERVCONF_H |
| 18 | |
Damien Miller | 34132e5 | 2000-01-14 15:45:46 +1100 | [diff] [blame] | 19 | #define MAX_PORTS 256 /* Max # ports. */ |
| 20 | |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 21 | #define MAX_ALLOW_USERS 256 /* Max # users on allow list. */ |
| 22 | #define MAX_DENY_USERS 256 /* Max # users on deny list. */ |
| 23 | #define MAX_ALLOW_GROUPS 256 /* Max # groups on allow list. */ |
| 24 | #define MAX_DENY_GROUPS 256 /* Max # groups on deny list. */ |
Damien Miller | f6d9e22 | 2000-06-18 14:50:44 +1000 | [diff] [blame] | 25 | #define MAX_SUBSYSTEMS 256 /* Max # subsystems. */ |
Damien Miller | 0bc1bd8 | 2000-11-13 22:57:25 +1100 | [diff] [blame] | 26 | #define MAX_HOSTKEYS 256 /* Max # hostkeys. */ |
Damien Miller | 0a80ca1 | 2010-02-27 07:55:05 +1100 | [diff] [blame] | 27 | #define MAX_HOSTCERTS 256 /* Max # host certificates. */ |
Darren Tucker | 46bc075 | 2004-05-02 22:11:30 +1000 | [diff] [blame] | 28 | #define MAX_ACCEPT_ENV 256 /* Max # of env vars. */ |
Damien Miller | 565ca3f | 2006-08-19 00:23:15 +1000 | [diff] [blame] | 29 | #define MAX_MATCH_GROUPS 256 /* Max # of groups for Match. */ |
Damien Miller | d8478b6 | 2011-05-29 21:39:36 +1000 | [diff] [blame] | 30 | #define MAX_AUTHKEYS_FILES 256 /* Max # of authorized_keys files. */ |
Damien Miller | a6e3f01 | 2012-11-04 23:21:40 +1100 | [diff] [blame] | 31 | #define MAX_AUTH_METHODS 256 /* Max # of AuthenticationMethods. */ |
Damien Miller | d4a8b7e | 1999-10-27 13:42:43 +1000 | [diff] [blame] | 32 | |
Ben Lindstrom | d8a9021 | 2001-02-15 03:08:27 +0000 | [diff] [blame] | 33 | /* permit_root_login */ |
| 34 | #define PERMIT_NOT_SET -1 |
| 35 | #define PERMIT_NO 0 |
| 36 | #define PERMIT_FORCED_ONLY 1 |
| 37 | #define PERMIT_NO_PASSWD 2 |
| 38 | #define PERMIT_YES 3 |
| 39 | |
Damien Miller | 69ff1df | 2011-06-23 08:30:03 +1000 | [diff] [blame] | 40 | /* use_privsep */ |
| 41 | #define PRIVSEP_OFF 0 |
| 42 | #define PRIVSEP_ON 1 |
Damien Miller | 5a5c2b9 | 2012-07-31 12:21:34 +1000 | [diff] [blame] | 43 | #define PRIVSEP_NOSANDBOX 2 |
Damien Miller | 69ff1df | 2011-06-23 08:30:03 +1000 | [diff] [blame] | 44 | |
Damien Miller | aa5b3f8 | 2012-12-03 09:50:54 +1100 | [diff] [blame] | 45 | /* AllowTCPForwarding */ |
| 46 | #define FORWARD_DENY 0 |
| 47 | #define FORWARD_REMOTE (1) |
| 48 | #define FORWARD_LOCAL (1<<1) |
| 49 | #define FORWARD_ALLOW (FORWARD_REMOTE|FORWARD_LOCAL) |
| 50 | |
Darren Tucker | 89413db | 2004-05-24 10:36:23 +1000 | [diff] [blame] | 51 | #define DEFAULT_AUTH_FAIL_MAX 6 /* Default for MaxAuthTries */ |
Damien Miller | 7207f64 | 2008-05-19 15:34:50 +1000 | [diff] [blame] | 52 | #define DEFAULT_SESSIONS_MAX 10 /* Default for MaxSessions */ |
Ben Lindstrom | d8a9021 | 2001-02-15 03:08:27 +0000 | [diff] [blame] | 53 | |
Damien Miller | 76e95da | 2008-03-07 18:31:24 +1100 | [diff] [blame] | 54 | /* Magic name for internal sftp-server */ |
| 55 | #define INTERNAL_SFTP_NAME "internal-sftp" |
| 56 | |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 57 | typedef struct { |
Damien Miller | 3dc71ad | 2009-01-28 16:31:22 +1100 | [diff] [blame] | 58 | u_int num_ports; |
| 59 | u_int ports_from_cmdline; |
| 60 | int ports[MAX_PORTS]; /* Port number to listen on. */ |
Damien Miller | 34132e5 | 2000-01-14 15:45:46 +1100 | [diff] [blame] | 61 | char *listen_addr; /* Address on which the server listens. */ |
| 62 | struct addrinfo *listen_addrs; /* Addresses on which the server listens. */ |
Darren Tucker | 0f38323 | 2005-01-20 10:57:56 +1100 | [diff] [blame] | 63 | int address_family; /* Address family used by the server. */ |
Damien Miller | 0bc1bd8 | 2000-11-13 22:57:25 +1100 | [diff] [blame] | 64 | char *host_key_files[MAX_HOSTKEYS]; /* Files containing host keys. */ |
| 65 | int num_host_key_files; /* Number of files for host keys. */ |
Damien Miller | 0a80ca1 | 2010-02-27 07:55:05 +1100 | [diff] [blame] | 66 | char *host_cert_files[MAX_HOSTCERTS]; /* Files containing host certs. */ |
| 67 | int num_host_cert_files; /* Number of files for host certs. */ |
Damien Miller | 85b45e0 | 2013-07-20 13:21:52 +1000 | [diff] [blame] | 68 | char *host_key_agent; /* ssh-agent socket for host keys. */ |
Damien Miller | 6f83b8e | 2000-05-02 09:23:45 +1000 | [diff] [blame] | 69 | char *pid_file; /* Where to put our pid */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 70 | int server_key_bits;/* Size of the server key. */ |
| 71 | int login_grace_time; /* Disconnect if no auth in this time |
| 72 | * (sec). */ |
| 73 | int key_regeneration_time; /* Server key lifetime (seconds). */ |
Ben Lindstrom | d8a9021 | 2001-02-15 03:08:27 +0000 | [diff] [blame] | 74 | int permit_root_login; /* PERMIT_*, see above */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 75 | int ignore_rhosts; /* Ignore .rhosts and .shosts. */ |
| 76 | int ignore_user_known_hosts; /* Ignore ~/.ssh/known_hosts |
| 77 | * for RhostsRsaAuth */ |
| 78 | int print_motd; /* If true, print /etc/motd. */ |
Ben Lindstrom | 7bfff36 | 2001-03-26 05:45:53 +0000 | [diff] [blame] | 79 | int print_lastlog; /* If true, print lastlog */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 80 | int x11_forwarding; /* If true, permit inet (spoofing) X11 fwd. */ |
| 81 | int x11_display_offset; /* What DISPLAY number to start |
| 82 | * searching at */ |
Damien Miller | 95c249f | 2002-02-05 12:11:34 +1100 | [diff] [blame] | 83 | int x11_use_localhost; /* If true, use localhost for fake X11 server. */ |
Damien Miller | d3a1857 | 2000-06-07 19:55:44 +1000 | [diff] [blame] | 84 | char *xauth_location; /* Location of xauth program */ |
Damien Miller | 5ff30c6 | 2013-10-30 22:21:50 +1100 | [diff] [blame] | 85 | int permit_tty; /* If false, deny pty allocation */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 86 | int strict_modes; /* If true, require string home dir modes. */ |
Damien Miller | 12c150e | 2003-12-17 16:31:10 +1100 | [diff] [blame] | 87 | int tcp_keep_alive; /* If true, set SO_KEEPALIVE. */ |
Damien Miller | 0dac6fb | 2010-11-20 15:19:38 +1100 | [diff] [blame] | 88 | int ip_qos_interactive; /* IP ToS/DSCP/class for interactive */ |
| 89 | int ip_qos_bulk; /* IP ToS/DSCP/class for bulk traffic */ |
Ben Lindstrom | 06b33aa | 2001-02-15 03:01:59 +0000 | [diff] [blame] | 90 | char *ciphers; /* Supported SSH2 ciphers. */ |
| 91 | char *macs; /* Supported SSH2 macs. */ |
Damien Miller | d5f62bf | 2010-09-24 22:11:14 +1000 | [diff] [blame] | 92 | char *kex_algorithms; /* SSH2 kex methods in order of preference. */ |
Ben Lindstrom | 06b33aa | 2001-02-15 03:01:59 +0000 | [diff] [blame] | 93 | int protocol; /* Supported protocol versions. */ |
Damien Miller | e247cc4 | 2000-05-07 12:03:14 +1000 | [diff] [blame] | 94 | int gateway_ports; /* If true, allow remote connects to forwarded ports. */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 95 | SyslogFacility log_facility; /* Facility for system logging. */ |
| 96 | LogLevel log_level; /* Level for system logging. */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 97 | int rhosts_rsa_authentication; /* If true, permit rhosts RSA |
| 98 | * authentication. */ |
Ben Lindstrom | 5eabda3 | 2001-04-12 23:34:34 +0000 | [diff] [blame] | 99 | int hostbased_authentication; /* If true, permit ssh2 hostbased auth */ |
| 100 | int hostbased_uses_name_from_packet_only; /* experimental */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 101 | int rsa_authentication; /* If true, permit RSA authentication. */ |
Damien Miller | 0bc1bd8 | 2000-11-13 22:57:25 +1100 | [diff] [blame] | 102 | int pubkey_authentication; /* If true, permit ssh2 pubkey authentication. */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 103 | int kerberos_authentication; /* If true, permit Kerberos |
| 104 | * authentication. */ |
| 105 | int kerberos_or_local_passwd; /* If true, permit kerberos |
| 106 | * and any other password |
| 107 | * authentication mechanism, |
| 108 | * such as SecurID or |
| 109 | * /etc/passwd */ |
| 110 | int kerberos_ticket_cleanup; /* If true, destroy ticket |
| 111 | * file on logout. */ |
Darren Tucker | 22ef508 | 2003-12-31 11:37:34 +1100 | [diff] [blame] | 112 | int kerberos_get_afs_token; /* If true, try to get AFS token if |
| 113 | * authenticated with Kerberos. */ |
Darren Tucker | 0efd155 | 2003-08-26 11:49:55 +1000 | [diff] [blame] | 114 | int gss_authentication; /* If true, permit GSSAPI authentication */ |
| 115 | int gss_cleanup_creds; /* If true, destroy cred cache on logout */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 116 | int password_authentication; /* If true, permit password |
| 117 | * authentication. */ |
Damien Miller | 874d77b | 2000-10-14 16:23:11 +1100 | [diff] [blame] | 118 | int kbd_interactive_authentication; /* If true, permit */ |
Ben Lindstrom | 551ea37 | 2001-06-05 18:56:16 +0000 | [diff] [blame] | 119 | int challenge_response_authentication; |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 120 | int permit_empty_passwd; /* If false, do not permit empty |
| 121 | * passwords. */ |
Ben Lindstrom | 5d860f0 | 2002-08-01 01:28:38 +0000 | [diff] [blame] | 122 | int permit_user_env; /* If true, read ~/.ssh/environment */ |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 123 | int use_login; /* If true, login(1) is used */ |
Ben Lindstrom | 23e0f66 | 2002-06-21 01:09:47 +0000 | [diff] [blame] | 124 | int compression; /* If true, compression is allowed */ |
Damien Miller | aa5b3f8 | 2012-12-03 09:50:54 +1100 | [diff] [blame] | 125 | int allow_tcp_forwarding; /* One of FORWARD_* */ |
Damien Miller | 4f755cd | 2008-05-19 14:57:41 +1000 | [diff] [blame] | 126 | int allow_agent_forwarding; |
Ben Lindstrom | 46c1622 | 2000-12-22 01:43:59 +0000 | [diff] [blame] | 127 | u_int num_allow_users; |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 128 | char *allow_users[MAX_ALLOW_USERS]; |
Ben Lindstrom | 46c1622 | 2000-12-22 01:43:59 +0000 | [diff] [blame] | 129 | u_int num_deny_users; |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 130 | char *deny_users[MAX_DENY_USERS]; |
Ben Lindstrom | 46c1622 | 2000-12-22 01:43:59 +0000 | [diff] [blame] | 131 | u_int num_allow_groups; |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 132 | char *allow_groups[MAX_ALLOW_GROUPS]; |
Ben Lindstrom | 46c1622 | 2000-12-22 01:43:59 +0000 | [diff] [blame] | 133 | u_int num_deny_groups; |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 134 | char *deny_groups[MAX_DENY_GROUPS]; |
Damien Miller | f6d9e22 | 2000-06-18 14:50:44 +1000 | [diff] [blame] | 135 | |
Ben Lindstrom | 46c1622 | 2000-12-22 01:43:59 +0000 | [diff] [blame] | 136 | u_int num_subsystems; |
Damien Miller | f6d9e22 | 2000-06-18 14:50:44 +1000 | [diff] [blame] | 137 | char *subsystem_name[MAX_SUBSYSTEMS]; |
| 138 | char *subsystem_command[MAX_SUBSYSTEMS]; |
Damien Miller | 917f9b6 | 2006-07-10 20:36:47 +1000 | [diff] [blame] | 139 | char *subsystem_args[MAX_SUBSYSTEMS]; |
Damien Miller | 3702396 | 2000-07-11 17:31:38 +1000 | [diff] [blame] | 140 | |
Darren Tucker | 46bc075 | 2004-05-02 22:11:30 +1000 | [diff] [blame] | 141 | u_int num_accept_env; |
| 142 | char *accept_env[MAX_ACCEPT_ENV]; |
| 143 | |
Damien Miller | 942da03 | 2000-08-18 13:59:06 +1000 | [diff] [blame] | 144 | int max_startups_begin; |
| 145 | int max_startups_rate; |
Damien Miller | 3702396 | 2000-07-11 17:31:38 +1000 | [diff] [blame] | 146 | int max_startups; |
Darren Tucker | 89413db | 2004-05-24 10:36:23 +1000 | [diff] [blame] | 147 | int max_authtries; |
Damien Miller | 7207f64 | 2008-05-19 15:34:50 +1000 | [diff] [blame] | 148 | int max_sessions; |
Ben Lindstrom | 48bd7c1 | 2001-01-09 00:35:42 +0000 | [diff] [blame] | 149 | char *banner; /* SSH-2 banner message */ |
Damien Miller | 3a961dc | 2003-06-03 10:25:48 +1000 | [diff] [blame] | 150 | int use_dns; |
Ben Lindstrom | 5744dc4 | 2001-04-13 23:28:01 +0000 | [diff] [blame] | 151 | int client_alive_interval; /* |
Damien Miller | 9f0f5c6 | 2001-12-21 14:45:46 +1100 | [diff] [blame] | 152 | * poke the client this often to |
| 153 | * see if it's still there |
Ben Lindstrom | 5744dc4 | 2001-04-13 23:28:01 +0000 | [diff] [blame] | 154 | */ |
| 155 | int client_alive_count_max; /* |
Ben Lindstrom | 7bb37b2 | 2001-09-12 16:40:05 +0000 | [diff] [blame] | 156 | * If the client is unresponsive |
| 157 | * for this many intervals above, |
Damien Miller | 9f0f5c6 | 2001-12-21 14:45:46 +1100 | [diff] [blame] | 158 | * disconnect the session |
Ben Lindstrom | 5744dc4 | 2001-04-13 23:28:01 +0000 | [diff] [blame] | 159 | */ |
Kevin Steves | e468de6 | 2001-07-04 18:37:20 +0000 | [diff] [blame] | 160 | |
Damien Miller | d8478b6 | 2011-05-29 21:39:36 +1000 | [diff] [blame] | 161 | u_int num_authkeys_files; /* Files containing public keys */ |
| 162 | char *authorized_keys_files[MAX_AUTHKEYS_FILES]; |
Damien Miller | d27b947 | 2005-12-13 19:29:02 +1100 | [diff] [blame] | 163 | |
Damien Miller | e275443 | 2006-07-24 14:06:47 +1000 | [diff] [blame] | 164 | char *adm_forced_command; |
| 165 | |
Damien Miller | 4e448a3 | 2003-05-14 15:11:48 +1000 | [diff] [blame] | 166 | int use_pam; /* Enable auth via PAM */ |
Damien Miller | d27b947 | 2005-12-13 19:29:02 +1100 | [diff] [blame] | 167 | |
| 168 | int permit_tun; |
Damien Miller | a765cf4 | 2006-07-24 14:08:13 +1000 | [diff] [blame] | 169 | |
| 170 | int num_permitted_opens; |
Damien Miller | d8cb1f1 | 2008-02-10 22:40:12 +1100 | [diff] [blame] | 171 | |
| 172 | char *chroot_directory; |
Damien Miller | 1aed65e | 2010-03-04 21:53:35 +1100 | [diff] [blame] | 173 | char *revoked_keys_file; |
| 174 | char *trusted_user_ca_keys; |
Damien Miller | 30da344 | 2010-05-10 11:58:03 +1000 | [diff] [blame] | 175 | char *authorized_principals_file; |
Damien Miller | 09d3e12 | 2012-10-31 08:58:58 +1100 | [diff] [blame] | 176 | char *authorized_keys_command; |
| 177 | char *authorized_keys_command_user; |
Damien Miller | 2352881 | 2012-04-22 11:24:43 +1000 | [diff] [blame] | 178 | |
Darren Tucker | 5f96f3b | 2013-05-16 20:29:28 +1000 | [diff] [blame] | 179 | int64_t rekey_limit; |
| 180 | int rekey_interval; |
| 181 | |
Damien Miller | 2352881 | 2012-04-22 11:24:43 +1000 | [diff] [blame] | 182 | char *version_addendum; /* Appended to SSH banner */ |
Damien Miller | a6e3f01 | 2012-11-04 23:21:40 +1100 | [diff] [blame] | 183 | |
| 184 | u_int num_auth_methods; |
| 185 | char *auth_methods[MAX_AUTH_METHODS]; |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 186 | } ServerOptions; |
Damien Miller | d4a8b7e | 1999-10-27 13:42:43 +1000 | [diff] [blame] | 187 | |
Darren Tucker | fbcf827 | 2012-05-19 19:37:01 +1000 | [diff] [blame] | 188 | /* Information about the incoming connection as used by Match */ |
| 189 | struct connection_info { |
| 190 | const char *user; |
| 191 | const char *host; /* possibly resolved hostname */ |
| 192 | const char *address; /* remote address */ |
| 193 | const char *laddress; /* local address */ |
| 194 | int lport; /* local port */ |
| 195 | }; |
| 196 | |
| 197 | |
Damien Miller | f2e407e | 2011-05-20 19:04:14 +1000 | [diff] [blame] | 198 | /* |
| 199 | * These are string config options that must be copied between the |
| 200 | * Match sub-config and the main config, and must be sent from the |
| 201 | * privsep slave to the privsep master. We use a macro to ensure all |
| 202 | * the options are copied and the copies are done in the correct order. |
Damien Miller | 534b2cc | 2013-12-05 14:07:27 +1100 | [diff] [blame] | 203 | * |
| 204 | * NB. an option must appear in servconf.c:copy_set_server_options() or |
| 205 | * COPY_MATCH_STRING_OPTS here but never both. |
Damien Miller | f2e407e | 2011-05-20 19:04:14 +1000 | [diff] [blame] | 206 | */ |
| 207 | #define COPY_MATCH_STRING_OPTS() do { \ |
| 208 | M_CP_STROPT(banner); \ |
| 209 | M_CP_STROPT(trusted_user_ca_keys); \ |
| 210 | M_CP_STROPT(revoked_keys_file); \ |
Damien Miller | f2e407e | 2011-05-20 19:04:14 +1000 | [diff] [blame] | 211 | M_CP_STROPT(authorized_principals_file); \ |
Damien Miller | 4413844 | 2013-01-09 15:56:45 +1100 | [diff] [blame] | 212 | M_CP_STROPT(authorized_keys_command); \ |
| 213 | M_CP_STROPT(authorized_keys_command_user); \ |
Damien Miller | d8478b6 | 2011-05-29 21:39:36 +1000 | [diff] [blame] | 214 | M_CP_STRARRAYOPT(authorized_keys_files, num_authkeys_files); \ |
Damien Miller | c24da77 | 2012-06-20 21:53:58 +1000 | [diff] [blame] | 215 | M_CP_STRARRAYOPT(allow_users, num_allow_users); \ |
| 216 | M_CP_STRARRAYOPT(deny_users, num_deny_users); \ |
| 217 | M_CP_STRARRAYOPT(allow_groups, num_allow_groups); \ |
| 218 | M_CP_STRARRAYOPT(deny_groups, num_deny_groups); \ |
| 219 | M_CP_STRARRAYOPT(accept_env, num_accept_env); \ |
Damien Miller | a6e3f01 | 2012-11-04 23:21:40 +1100 | [diff] [blame] | 220 | M_CP_STRARRAYOPT(auth_methods, num_auth_methods); \ |
Damien Miller | f2e407e | 2011-05-20 19:04:14 +1000 | [diff] [blame] | 221 | } while (0) |
| 222 | |
Darren Tucker | fbcf827 | 2012-05-19 19:37:01 +1000 | [diff] [blame] | 223 | struct connection_info *get_connection_info(int, int); |
Ben Lindstrom | 4cc240d | 2001-07-04 04:46:56 +0000 | [diff] [blame] | 224 | void initialize_server_options(ServerOptions *); |
Ben Lindstrom | 4cc240d | 2001-07-04 04:46:56 +0000 | [diff] [blame] | 225 | void fill_default_server_options(ServerOptions *); |
Darren Tucker | 4515047 | 2006-07-12 22:34:17 +1000 | [diff] [blame] | 226 | int process_server_config_line(ServerOptions *, char *, const char *, int, |
Darren Tucker | fbcf827 | 2012-05-19 19:37:01 +1000 | [diff] [blame] | 227 | int *, struct connection_info *); |
Darren Tucker | 645ab75 | 2004-06-25 13:33:20 +1000 | [diff] [blame] | 228 | void load_server_config(const char *, Buffer *); |
Darren Tucker | 4515047 | 2006-07-12 22:34:17 +1000 | [diff] [blame] | 229 | void parse_server_config(ServerOptions *, const char *, Buffer *, |
Darren Tucker | fbcf827 | 2012-05-19 19:37:01 +1000 | [diff] [blame] | 230 | struct connection_info *); |
| 231 | void parse_server_match_config(ServerOptions *, struct connection_info *); |
| 232 | int parse_server_match_testspec(struct connection_info *, char *); |
| 233 | int server_match_spec_complete(struct connection_info *); |
Darren Tucker | 1629c07 | 2007-02-19 22:25:37 +1100 | [diff] [blame] | 234 | void copy_set_server_options(ServerOptions *, ServerOptions *, int); |
Darren Tucker | e7140f2 | 2008-06-10 23:01:51 +1000 | [diff] [blame] | 235 | void dump_config(ServerOptions *); |
Darren Tucker | 88b6fb2 | 2010-01-13 22:44:29 +1100 | [diff] [blame] | 236 | char *derelativise_path(const char *); |
Damien Miller | d4a8b7e | 1999-10-27 13:42:43 +1000 | [diff] [blame] | 237 | |
Damien Miller | 95def09 | 1999-11-25 00:26:21 +1100 | [diff] [blame] | 238 | #endif /* SERVCONF_H */ |