1 // SoftEther VPN Source Code - Developer Edition Master Branch
2 // Cedar Communication Module
3 // © 2020 Nokia
4 
5 // Command.h
6 // Header of Command.c
7 
8 #ifndef	COMMAND_H
9 #define	COMMAND_H
10 
11 #include "CedarType.h"
12 
13 #include "Mayaqua/Network.h"
14 
15 #include <stddef.h>
16 
17 // Constants
18 #define	TRAFFIC_DEFAULT_PORT		9821
19 #define	TRAFFIC_NUMTCP_MAX			32
20 #define	TRAFFIC_NUMTCP_DEFAULT		32
21 #define	TRAFFIC_SPAN_DEFAULT		15
22 #define	TRAFFIC_TYPE_DOWNLOAD		1
23 #define	TRAFFIC_TYPE_UPLOAD			2
24 #define	TRAFFIC_TYPE_FULL			0
25 #define	TRAFFIC_BUF_SIZE			65535
26 #define	TRAFFIC_VER_STR_SIZE		16
27 #define	TRAFFIC_VER_STR				"TrafficServer\r\n"
28 
29 // Constants for Win32
30 #define	VPNCMD_BOOTSTRAP_REG_KEYNAME	"Software\\" GC_REG_COMPANY_NAME "\\VPN Command Line Utility"
31 #define	VPNCMD_BOOTSTRAP_REG_VALUENAME_VER	"InstalledVersion"
32 #define	VPNCMD_BOOTSTRAP_REG_VALUENAME_PATH	"InstalledPath"
33 #define	VPNCMD_BOOTSTRAP_FILENAME		"|vpncmdsys.exe"
34 
35 
36 // Traffic test results
37 struct TT_RESULT
38 {
39 	bool Raw;					// Whether raw data
40 	bool Double;				// Whether it is doubled
41 	UINT64 NumBytesUpload;		// Uploaded size
42 	UINT64 NumBytesDownload;	// Downloaded size
43 	UINT64 NumBytesTotal;		// Total size
44 	UINT64 Span;				// Period (in milliseconds)
45 	UINT64 BpsUpload;			// Upload throughput
46 	UINT64 BpsDownload;			// Download throughput
47 	UINT64 BpsTotal;			// Total throughput
48 };
49 
50 // Text display function
51 typedef void (TT_PRINT_PROC)(void *param, wchar_t *str);
52 
53 // Client side socket
54 struct TTC_SOCK
55 {
56 	SOCK *Sock;				// Socket
57 	UINT State;				// State
58 	UINT64 NumBytes;		// Transmitted bytes
59 	bool Download;			// Download socket
60 	bool ServerUploadReportReceived;	// Complete to receive the report of upload amount from the server
61 	UINT64 NextSendRequestReportTick;	// Time to request a next report
62 	UINT Id;
63 	bool HideErrMsg;
64 };
65 
66 // Traffic test Client
67 struct TTC
68 {
69 	TT_PRINT_PROC *Print;	// Text display function
70 	void *Param;			// Any parameters
71 	bool Double;			// Double mode
72 	bool Raw;				// Raw data mode
73 	UINT Port;				// Port number
74 	char Host[MAX_HOST_NAME_LEN + 1];	// Host name
75 	UINT NumTcp;			// Number of TCP connections
76 	UINT Type;				// Type
77 	UINT64 Span;			// Period
78 	UINT64 RealSpan;		// The actual span
79 	THREAD *Thread;			// Thread
80 	volatile bool Halt;		// Halting flag
81 	bool *Cancel;			// Halting flag 2
82 	LIST *ItcSockList;		// Client socket list
83 	TT_RESULT Result;		// Result
84 	UINT ErrorCode;			// Error code
85 	bool AbnormalTerminated;	// Abnormal termination
86 	EVENT *StartEvent;		// Start event
87 	EVENT *InitedEvent;		// Initialize completion notification event
88 	LIST *WorkerThreadList;	// List of worker threads
89 
90 	UINT flag1, flag2;
91 
92 	UINT64 session_id;
93 	UINT64 end_tick;
94 	UINT64 start_tick;
95 };
96 
97 // Traffic test worker thread
98 struct TTC_WORKER
99 {
100 	THREAD *WorkerThread;
101 	TTC *Ttc;
102 	LIST *SockList;			// Client socket list
103 	SOCK_EVENT *SockEvent;	// Socket event
104 	EVENT *StartEvent;		// Start event
105 	bool Ok;				// The result
106 };
107 
108 // Server side socket
109 struct TTS_SOCK
110 {
111 	SOCK *Sock;				// Socket
112 	UINT State;				// State
113 	UINT64 NumBytes;		// Transmitted bytes
114 	bool SockJoined;		// Whether it has been added to the event
115 	UINT Id;				// ID
116 	UINT64 LastWaitTick;	// Retry waiting time to notify the size information to the client
117 	UINT64 SessionId;		// Session ID
118 	bool NoMoreSendData;	// Flag not to send more data
119 	UINT64 FirstRecvTick;	// Time which the data has been received last
120 	UINT64 FirstSendTick;	// Time which the data has been sent last
121 	UINT64 Span;			// Period
122 	UINT64 GiveupSpan;
123 	UINT64 LastCommTime;
124 };
125 
126 // Traffic test server
127 struct TTS
128 {
129 	TT_PRINT_PROC *Print;	// Text display function
130 	void *Param;			// Any parameters
131 	volatile bool Halt;		// Halting flag
132 	UINT Port;				// Port number
133 	THREAD *Thread;			// Thread
134 	THREAD *IPv6AcceptThread;	// IPv6 Accept thread
135 	SOCK *ListenSocket;		// Socket to wait
136 	SOCK *ListenSocketV6;	// Socket to wait (IPv6)
137 	UINT ErrorCode;			// Error code
138 	UINT IdSeed;			// ID value
139 	LIST *WorkerList;		// Worker threads list
140 };
141 
142 // Traffic test worker thread
143 struct TTS_WORKER
144 {
145 	TTS *Tts;				// TTS
146 	THREAD *WorkThread;		// Worker thread
147 	SOCK_EVENT *SockEvent;	// Socket event
148 	LIST *TtsSockList;		// Server socket list
149 	bool NewSocketArrived;	// New socket has arrived
150 };
151 
152 // VPN Tools context
153 struct PT
154 {
155 	CONSOLE *Console;	// Console
156 	UINT LastError;		// Last error
157 	wchar_t *CmdLine;	// Command line to execute
158 };
159 
160 // Server management context
161 struct PS
162 {
163 	bool ConsoleForServer;	// Console for the server (always true)
164 	CONSOLE *Console;	// Console
165 	RPC *Rpc;			// RPC
166 	char *ServerName;	// Server name
167 	UINT ServerPort;	// Port number
168 	char *HubName;		// Virtual HUB name in the currently managed
169 	UINT LastError;		// Last error
170 	char *AdminHub;		// Virtual HUB to be managed by default
171 	wchar_t *CmdLine;	// Command line to execute
172 	CAPSLIST *CapsList;	// Caps list
173 };
174 
175 // Client management context
176 struct PC
177 {
178 	bool ConsoleForServer;	// Console for the server (always false)
179 	CONSOLE *Console;	// Console
180 	REMOTE_CLIENT *RemoteClient;	// Remote client
181 	char *ServerName;	// Server name
182 	UINT LastError;		// Last error
183 	wchar_t *CmdLine;	// Command line
184 };
185 
186 // A column of the table
187 struct CTC
188 {
189 	wchar_t *String;	// String
190 	bool Right;			// Right justification
191 };
192 
193 // A row of the table
194 struct CTR
195 {
196 	wchar_t **Strings;	// String list
197 };
198 
199 // Table for console
200 struct CT
201 {
202 	LIST *Columns;		// Column list
203 	LIST *Rows;			// Row list
204 };
205 
206 UINT CommandMain(wchar_t *command_line);
207 UINT VpnCmdProc(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
208 bool ParseHostPort(char *src, char **host, UINT *port, UINT default_port);
209 bool ParseHostPortAtmark(char *src, char **host, UINT *port, UINT default_port);
210 CT *CtNew();
211 void CtFree(CT *ct, CONSOLE *c);
212 void CtFreeEx(CT *ct, CONSOLE *c, bool standard_view);
213 void CtInsertColumn(CT *ct, wchar_t *str, bool right);
214 CT *CtNewStandard();
215 CT *CtNewStandardEx();
216 void CtInsert(CT *ct, ...);
217 void CtPrint(CT *ct, CONSOLE *c);
218 void CtPrintStandard(CT *ct, CONSOLE *c);
219 void CtPrintRow(CONSOLE *c, UINT num, UINT *widths, wchar_t **strings, bool *rights, char separate_char);
220 void VpnCmdInitBootPath();
221 
222 void CmdPrintError(CONSOLE *c, UINT err);
223 void CmdPrintAbout(CONSOLE *c);
224 wchar_t *CmdPromptPort(CONSOLE *c, void *param);
225 wchar_t *CmdPromptChoosePassword(CONSOLE *c, void *param);
226 bool CmdEvalPort(CONSOLE *c, wchar_t *str, void *param);
227 void CmdInsertTrafficInfo(CT *ct, TRAFFIC *t);
228 wchar_t *GetHubTypeStr(UINT type);
229 wchar_t *GetServerTypeStr(UINT type);
230 char *CmdPasswordPrompt(CONSOLE *c);
231 bool CmdEvalIp(CONSOLE *c, wchar_t *str, void *param);
232 wchar_t *PsClusterSettingMemberPromptIp(CONSOLE *c, void *param);
233 bool CmdEvalHostAndPort(CONSOLE *c, wchar_t *str, void *param);
234 LIST *StrToPortList(char *str, bool limit_range);
235 bool CmdEvalPortList(CONSOLE *c, wchar_t *str, void *param);
236 wchar_t *PsClusterSettingMemberPromptPorts(CONSOLE *c, void *param);
237 K *CmdLoadKey(CONSOLE *c, wchar_t *filename);
238 bool CmdLoadCertAndKey(CONSOLE *c, X **xx, K **kk, wchar_t *cert_filename, wchar_t *key_filename);
239 bool CmdEvalTcpOrUdp(CONSOLE *c, wchar_t *str, void *param);
240 wchar_t *GetConnectionTypeStr(UINT type);
241 bool CmdEvalHostAndSubnetMask4(CONSOLE *c, wchar_t *str, void *param);
242 bool CmdEvalNetworkAndSubnetMask4(CONSOLE *c, wchar_t *str, void *param);
243 bool CmdEvalIpAndMask4(CONSOLE *c, wchar_t *str, void *param);
244 bool CmdEvalIpAndMask6(CONSOLE *c, wchar_t *str, void *param);
245 wchar_t *GetLogSwitchStr(UINT i);
246 wchar_t *GetPacketLogNameStr(UINT i);
247 UINT StrToLogSwitchType(char *str);
248 UINT StrToPacketLogType(char *str);
249 UINT StrToPacketLogSaveInfoType(char *str);
250 wchar_t *GetProxyTypeStr(UINT i);
251 wchar_t *GetClientAuthTypeStr(UINT i);
252 void PrintPolicyList(CONSOLE *c, char *name);
253 void PrintPolicy(CONSOLE *c, POLICY *pol, bool cascade_mode);
254 bool EditPolicy(CONSOLE *c, POLICY *pol, char *name, char *value, bool cascade_mode);
255 void CmdPrintStatusToListView(CT *ct, RPC_CLIENT_GET_CONNECTION_STATUS *s);
256 void CmdPrintStatusToListViewEx(CT *ct, RPC_CLIENT_GET_CONNECTION_STATUS *s, bool server_mode);
257 bool CmdEvalPassOrDiscard(CONSOLE *c, wchar_t *str, void *param);
258 bool StrToPassOrDiscard(char *str);
259 bool CmdEvalProtocol(CONSOLE *c, wchar_t *str, void *param);
260 UINT StrToProtocol(char *str);
261 bool CmdEvalPortRange(CONSOLE *c, wchar_t *str, void *param);
262 bool ParsePortRange(char *str, UINT *start, UINT *end);
263 wchar_t *GetAuthTypeStr(UINT id);
264 UINT64 StrToDateTime64(char *str);
265 bool CmdEvalDateTime(CONSOLE *c, wchar_t *str, void *param);
266 void CmdPrintNodeInfo(CT *ct, NODE_INFO *info);
267 wchar_t *GetProtocolName(UINT n);
268 void CmdGenerateImportName(REMOTE_CLIENT *r, wchar_t *name, UINT size, wchar_t *old_name);
269 bool CmdIsAccountName(REMOTE_CLIENT *r, wchar_t *name);
270 wchar_t *GetSyslogSettingName(UINT n);
271 
272 
273 void TtPrint(void *param, TT_PRINT_PROC *print_proc, wchar_t *str);
274 void TtGenerateRandomData(UCHAR **buf, UINT *size);
275 void TtsWorkerThread(THREAD *thread, void *param);
276 void TtsListenThread(THREAD *thread, void *param);
277 void TtsAcceptProc(TTS *tts, SOCK *listen_socket);
278 void TtsIPv6AcceptThread(THREAD *thread, void *param);
279 wchar_t *GetTtcTypeStr(UINT type);
280 void TtcPrintSummary(TTC *ttc);
281 void StopTtc(TTC *ttc);
282 void TtcGenerateResult(TTC *ttc);
283 void TtcThread(THREAD *thread, void *param);
284 TTC *NewTtcEx(char *host, UINT port, UINT numtcp, UINT type, UINT64 span, bool dbl, bool raw, TT_PRINT_PROC *print_proc, void *param, EVENT *start_event, bool *cancel);
285 TTC *NewTtc(char *host, UINT port, UINT numtcp, UINT type, UINT64 span, bool dbl, bool raw, TT_PRINT_PROC *print_proc, void *param);
286 UINT FreeTtc(TTC *ttc, TT_RESULT *result);
287 TTS *NewTts(UINT port, void *param, TT_PRINT_PROC *print_proc);
288 UINT FreeTts(TTS *tts);
289 void PtTrafficPrintProc(void *param, wchar_t *str);
290 void TtcPrintResult(CONSOLE *c, TT_RESULT *res);
291 
292 
293 bool SystemCheck();
294 bool CheckKernel();
295 bool CheckMemory();
296 bool CheckStrings();
297 bool CheckFileSystem();
298 bool CheckThread();
299 bool CheckNetwork();
300 void InputToNull(void *p);
301 UINT RetZero();
302 
303 void Win32CmdDebug(bool is_uac);
304 
305 
306 UINT PtConnect(CONSOLE *c, wchar_t *cmdline);
307 PT *NewPt(CONSOLE *c, wchar_t *cmdline);
308 void FreePt(PT *pt);
309 void PtMain(PT *pt);
310 UINT PtMakeCert(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
311 UINT PtMakeCert2048(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
312 UINT PtTrafficClient(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
313 UINT PtTrafficServer(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
314 UINT PtCheck(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
315 
316 
317 UINT PcConnect(CONSOLE *c, char *target, wchar_t *cmdline, char *password);
318 PC *NewPc(CONSOLE *c, REMOTE_CLIENT *remote_client, char *servername, wchar_t *cmdline);
319 void FreePc(PC *pc);
320 void PcMain(PC *pc);
321 UINT PcAbout(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
322 UINT PcVersionGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
323 UINT PcPasswordSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
324 UINT PcPasswordGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
325 UINT PcCertList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
326 UINT PcCertAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
327 UINT PcCertDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
328 UINT PcCertGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
329 UINT PcSecureList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
330 UINT PcSecureSelect(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
331 UINT PcSecureGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
332 UINT PcNicCreate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
333 UINT PcNicDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
334 UINT PcNicUpgrade(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
335 UINT PcNicGetSetting(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
336 UINT PcNicSetSetting(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
337 UINT PcNicEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
338 UINT PcNicDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
339 UINT PcNicList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
340 UINT PcAccountList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
341 UINT PcAccountCreate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
342 UINT PcAccountSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
343 UINT PcAccountGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
344 UINT PcAccountDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
345 UINT PcAccountUsernameSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
346 UINT PcAccountAnonymousSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
347 UINT PcAccountPasswordSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
348 UINT PcAccountCertSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
349 UINT PcAccountCertGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
350 UINT PcAccountEncryptDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
351 UINT PcAccountEncryptEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
352 UINT PcAccountCompressEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
353 UINT PcAccountCompressDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
354 UINT PcAccountHttpHeaderAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
355 UINT PcAccountHttpHeaderDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
356 UINT PcAccountHttpHeaderGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
357 UINT PcAccountProxyNone(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
358 UINT PcAccountProxyHttp(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
359 UINT PcAccountProxySocks(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
360 UINT PcAccountProxySocks5(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
361 UINT PcAccountServerCertEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
362 UINT PcAccountServerCertDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
363 UINT PcAccountRetryOnServerCertEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
364 UINT PcAccountRetryOnServerCertDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
365 UINT PcAccountServerCertSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
366 UINT PcAccountServerCertDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
367 UINT PcAccountServerCertGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
368 UINT PcAccountDetailSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
369 UINT PcAccountRename(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
370 UINT PcAccountConnect(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
371 UINT PcAccountDisconnect(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
372 UINT PcAccountStatusGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
373 UINT PcAccountNicSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
374 UINT PcAccountStatusShow(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
375 UINT PcAccountStatusHide(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
376 UINT PcAccountSecureCertSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
377 UINT PcAccountOpensslEngineCertSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
378 UINT PcAccountRetrySet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
379 UINT PcAccountStartupSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
380 UINT PcAccountStartupRemove(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
381 UINT PcAccountExport(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
382 UINT PcAccountImport(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
383 UINT PcRemoteEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
384 UINT PcRemoteDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
385 UINT PcKeepEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
386 UINT PcKeepDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
387 UINT PcKeepSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
388 UINT PcKeepGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
389 
390 
391 PS *NewPs(CONSOLE *c, RPC *rpc, char *servername, UINT serverport, char *hubname, char *adminhub, wchar_t *cmdline);
392 void FreePs(PS *ps);
393 UINT PsConnect(CONSOLE *c, char *host, UINT port, char *hub, char *adminhub, wchar_t *cmdline, char *password);
394 void PsMain(PS *ps);
395 UINT PsAbout(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
396 UINT PsServerInfoGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
397 UINT PsServerStatusGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
398 UINT PsListenerCreate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
399 UINT PsListenerDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
400 UINT PsListenerList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
401 UINT PsListenerEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
402 UINT PsListenerDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
403 UINT PsPortsUDPSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
404 UINT PsPortsUDPGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
405 UINT PsProtoOptionsSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
406 UINT PsProtoOptionsGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
407 UINT PsServerPasswordSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
408 UINT PsClusterSettingGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
409 UINT PsClusterSettingStandalone(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
410 UINT PsClusterSettingController(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
411 UINT PsClusterSettingMember(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
412 UINT PsClusterMemberList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
413 UINT PsClusterMemberInfoGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
414 UINT PsClusterMemberCertGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
415 UINT PsClusterConnectionStatusGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
416 UINT PsCrash(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
417 UINT PsFlush(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
418 UINT PsDebug(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
419 UINT PsServerCertGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
420 UINT PsServerKeyGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
421 UINT PsServerCertSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
422 UINT PsServerCipherGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
423 UINT PsServerCipherSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
424 UINT PsKeepEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
425 UINT PsKeepDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
426 UINT PsKeepSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
427 UINT PsKeepGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
428 UINT PsSyslogGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
429 UINT PsSyslogDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
430 UINT PsSyslogEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
431 UINT PsConnectionList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
432 UINT PsConnectionGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
433 UINT PsConnectionDisconnect(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
434 UINT PsBridgeDeviceList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
435 UINT PsBridgeList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
436 UINT PsBridgeCreate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
437 UINT PsBridgeDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
438 UINT PsCaps(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
439 UINT PsReboot(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
440 UINT PsConfigGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
441 UINT PsConfigSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
442 UINT PsRouterList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
443 UINT PsRouterAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
444 UINT PsRouterDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
445 UINT PsRouterStart(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
446 UINT PsRouterStop(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
447 UINT PsRouterIfList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
448 UINT PsRouterIfAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
449 UINT PsRouterIfDel(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
450 UINT PsRouterTableList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
451 UINT PsRouterTableAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
452 UINT PsRouterTableDel(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
453 UINT PsLogFileList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
454 UINT PsLogFileGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
455 UINT PsWgkAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
456 UINT PsWgkDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
457 UINT PsWgkEnum(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
458 UINT PsHubCreate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
459 UINT PsHubCreateDynamic(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
460 UINT PsHubCreateStatic(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
461 UINT PsHubDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
462 UINT PsHubSetStatic(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
463 UINT PsHubSetDynamic(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
464 UINT PsHubList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
465 UINT PsHub(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
466 UINT PsOnline(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
467 UINT PsOffline(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
468 UINT PsSetStaticNetwork(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
469 UINT PsSetMaxSession(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
470 UINT PsSetHubPassword(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
471 UINT PsSetEnumAllow(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
472 UINT PsSetEnumDeny(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
473 UINT PsOptionsGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
474 UINT PsRadiusServerSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
475 UINT PsRadiusServerDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
476 UINT PsRadiusServerGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
477 UINT PsStatusGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
478 UINT PsLogGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
479 UINT PsLogEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
480 UINT PsLogDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
481 UINT PsLogSwitchSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
482 UINT PsLogPacketSaveType(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
483 UINT PsCAList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
484 UINT PsCAAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
485 UINT PsCADelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
486 UINT PsCAGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
487 UINT PsCascadeList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
488 UINT PsCascadeCreate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
489 UINT PsCascadeSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
490 UINT PsCascadeGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
491 UINT PsCascadeDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
492 UINT PsCascadeUsernameSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
493 UINT PsCascadeAnonymousSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
494 UINT PsCascadePasswordSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
495 UINT PsCascadeCertSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
496 UINT PsCascadeCertGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
497 UINT PsCascadeEncryptEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
498 UINT PsCascadeEncryptDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
499 UINT PsCascadeCompressEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
500 UINT PsCascadeCompressDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
501 UINT PsCascadeHttpHeaderAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
502 UINT PsCascadeHttpHeaderDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
503 UINT PsCascadeHttpHeaderGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
504 UINT PsCascadeProxyNone(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
505 UINT PsCascadeProxyHttp(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
506 UINT PsCascadeProxySocks(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
507 UINT PsCascadeProxySocks5(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
508 UINT PsCascadeServerCertEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
509 UINT PsCascadeServerCertDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
510 UINT PsCascadeServerCertSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
511 UINT PsCascadeServerCertDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
512 UINT PsCascadeServerCertGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
513 UINT PsCascadeDetailSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
514 UINT PsCascadePolicyRemove(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
515 UINT PsCascadePolicySet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
516 UINT PsPolicyList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
517 UINT PsCascadeStatusGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
518 UINT PsCascadeRename(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
519 UINT PsCascadeOnline(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
520 UINT PsCascadeOffline(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
521 UINT PsAccessAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
522 UINT PsAccessAddEx(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
523 UINT PsAccessAdd6(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
524 UINT PsAccessAddEx6(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
525 UINT PsAccessList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
526 UINT PsAccessDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
527 UINT PsAccessEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
528 UINT PsAccessDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
529 UINT PsUserList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
530 UINT PsUserCreate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
531 UINT PsUserSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
532 UINT PsUserDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
533 UINT PsUserGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
534 UINT PsUserAnonymousSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
535 UINT PsUserPasswordSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
536 UINT PsUserCertSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
537 UINT PsUserCertGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
538 UINT PsUserSignedSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
539 UINT PsUserRadiusSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
540 UINT PsUserNTLMSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
541 UINT PsUserPolicyRemove(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
542 UINT PsUserPolicySet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
543 UINT PsUserExpiresSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
544 UINT PsGroupList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
545 UINT PsGroupCreate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
546 UINT PsGroupSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
547 UINT PsGroupDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
548 UINT PsGroupGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
549 UINT PsGroupJoin(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
550 UINT PsGroupUnjoin(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
551 UINT PsGroupPolicyRemove(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
552 UINT PsGroupPolicySet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
553 UINT PsSessionList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
554 UINT PsSessionGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
555 UINT PsSessionDisconnect(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
556 UINT PsMacTable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
557 UINT PsMacDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
558 UINT PsIpTable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
559 UINT PsIpDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
560 UINT PsSecureNatEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
561 UINT PsSecureNatDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
562 UINT PsSecureNatStatusGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
563 UINT PsSecureNatHostGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
564 UINT PsSecureNatHostSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
565 UINT PsNatGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
566 UINT PsNatEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
567 UINT PsNatDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
568 UINT PsNatSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
569 UINT PsNatTable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
570 UINT PsDhcpGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
571 UINT PsDhcpEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
572 UINT PsDhcpDisable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
573 UINT PsDhcpSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
574 UINT PsDhcpTable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
575 UINT PsAdminOptionList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
576 UINT PsAdminOptionSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
577 UINT PsExtOptionList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
578 UINT PsExtOptionSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
579 UINT PsCrlList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
580 UINT PsCrlAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
581 UINT PsCrlDel(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
582 UINT PsCrlGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
583 UINT PsAcList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
584 UINT PsAcAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
585 UINT PsAcAdd6(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
586 UINT PsAcGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
587 UINT PsAcDel(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
588 UINT PsLicenseAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
589 UINT PsLicenseDel(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
590 UINT PsLicenseList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
591 UINT PsLicenseStatus(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
592 UINT PsIPsecEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
593 UINT PsIPsecGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
594 UINT PsEtherIpClientAdd(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
595 UINT PsEtherIpClientDelete(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
596 UINT PsEtherIpClientList(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
597 UINT PsOpenVpnMakeConfig(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
598 UINT PsServerCertRegenerate(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
599 UINT PsVpnOverIcmpDnsEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
600 UINT PsVpnOverIcmpDnsGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
601 UINT PsDynamicDnsGetStatus(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
602 UINT PsDynamicDnsSetHostname(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
603 UINT PsVpnAzureSetEnable(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
604 UINT PsVpnAzureGetStatus(CONSOLE *c, char *cmd_name, wchar_t *str, void *param);
605 
606 
607 #endif	// COMMAND_H
608 
609 
610