Command.h 32 KB

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