• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Dropbear - a SSH2 server
3  *
4  * Copyright (c) 2002,2003 Matt Johnston
5  * All rights reserved.
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a copy
8  * of this software and associated documentation files (the "Software"), to deal
9  * in the Software without restriction, including without limitation the rights
10  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11  * copies of the Software, and to permit persons to whom the Software is
12  * furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice shall be included in
15  * all copies or substantial portions of the Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23  * SOFTWARE. */
24 
25 #ifndef _RUNOPTS_H_
26 #define _RUNOPTS_H_
27 
28 #include "includes.h"
29 #include "signkey.h"
30 #include "buffer.h"
31 #include "auth.h"
32 #include "tcpfwd.h"
33 
34 typedef struct runopts {
35 
36 #if defined(ENABLE_SVR_REMOTETCPFWD) || defined(ENABLE_CLI_LOCALTCPFWD)
37 	int listen_fwd_all;
38 #endif
39 
40 } runopts;
41 
42 extern runopts opts;
43 
44 int readhostkey(const char * filename, sign_key * hostkey, int *type);
45 
46 typedef struct svr_runopts {
47 
48 	char * rsakeyfile;
49 	char * dsskeyfile;
50 	char * bannerfile;
51 
52 	int forkbg;
53 	int usingsyslog;
54 
55 	/* ports is an array of the portcount listening ports */
56 	char *ports[DROPBEAR_MAX_PORTS];
57 	unsigned int portcount;
58 	char *addresses[DROPBEAR_MAX_PORTS];
59 
60 	int inetdmode;
61 
62 	/* Flags indicating whether to use ipv4 and ipv6 */
63 	/* not used yet
64 	int ipv4;
65 	int ipv6;
66 	*/
67 
68 #ifdef DO_MOTD
69 	/* whether to print the MOTD */
70 	int domotd;
71 #endif
72 
73 	int norootlogin;
74 
75 	int noauthpass;
76 	int norootpass;
77 
78 #ifdef ENABLE_SVR_REMOTETCPFWD
79 	int noremotetcp;
80 #endif
81 #ifdef ENABLE_SVR_LOCALTCPFWD
82 	int nolocaltcp;
83 #endif
84 
85 	sign_key *hostkey;
86 	buffer * banner;
87 	char * pidfile;
88 
89 } svr_runopts;
90 
91 extern svr_runopts svr_opts;
92 
93 void svr_getopts(int argc, char ** argv);
94 void loadhostkeys();
95 
96 typedef struct cli_runopts {
97 
98 	char *progname;
99 	char *remotehost;
100 	char *remoteport;
101 
102 	char *username;
103 
104 	char *cmd;
105 	int wantpty;
106 	int always_accept_key;
107 	int no_cmd;
108 	int backgrounded;
109 #ifdef ENABLE_CLI_PUBKEY_AUTH
110 	struct SignKeyList *privkeys; /* Keys to use for public-key auth */
111 #endif
112 #ifdef ENABLE_CLI_REMOTETCPFWD
113 	struct TCPFwdList * remotefwds;
114 #endif
115 #ifdef ENABLE_CLI_LOCALTCPFWD
116 	struct TCPFwdList * localfwds;
117 #endif
118 
119 } cli_runopts;
120 
121 extern cli_runopts cli_opts;
122 void cli_getopts(int argc, char ** argv);
123 
124 #endif /* _RUNOPTS_H_ */
125