1 // SoftEther VPN Source Code - Stable Edition Repository
2 // Cedar Communication Module
3 //
4 // SoftEther VPN Server, Client and Bridge are free software under the Apache License, Version 2.0.
5 //
6 // Copyright (c) Daiyuu Nobori.
7 // Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan.
8 // Copyright (c) SoftEther Corporation.
9 // Copyright (c) all contributors on SoftEther VPN project in GitHub.
10 //
11 // All Rights Reserved.
12 //
13 // http://www.softether.org/
14 //
15 // This stable branch is officially managed by Daiyuu Nobori, the owner of SoftEther VPN Project.
16 // Pull requests should be sent to the Developer Edition Master Repository on https://github.com/SoftEtherVPN/SoftEtherVPN
17 //
18 // License: The Apache License, Version 2.0
19 // https://www.apache.org/licenses/LICENSE-2.0
20 //
21 // DISCLAIMER
22 // ==========
23 //
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 // SOFTWARE.
31 //
32 // THIS SOFTWARE IS DEVELOPED IN JAPAN, AND DISTRIBUTED FROM JAPAN, UNDER
33 // JAPANESE LAWS. YOU MUST AGREE IN ADVANCE TO USE, COPY, MODIFY, MERGE, PUBLISH,
34 // DISTRIBUTE, SUBLICENSE, AND/OR SELL COPIES OF THIS SOFTWARE, THAT ANY
35 // JURIDICAL DISPUTES WHICH ARE CONCERNED TO THIS SOFTWARE OR ITS CONTENTS,
36 // AGAINST US (SOFTETHER PROJECT, SOFTETHER CORPORATION, DAIYUU NOBORI OR OTHER
37 // SUPPLIERS), OR ANY JURIDICAL DISPUTES AGAINST US WHICH ARE CAUSED BY ANY KIND
38 // OF USING, COPYING, MODIFYING, MERGING, PUBLISHING, DISTRIBUTING, SUBLICENSING,
39 // AND/OR SELLING COPIES OF THIS SOFTWARE SHALL BE REGARDED AS BE CONSTRUED AND
40 // CONTROLLED BY JAPANESE LAWS, AND YOU MUST FURTHER CONSENT TO EXCLUSIVE
41 // JURISDICTION AND VENUE IN THE COURTS SITTING IN TOKYO, JAPAN. YOU MUST WAIVE
42 // ALL DEFENSES OF LACK OF PERSONAL JURISDICTION AND FORUM NON CONVENIENS.
43 // PROCESS MAY BE SERVED ON EITHER PARTY IN THE MANNER AUTHORIZED BY APPLICABLE
44 // LAW OR COURT RULE.
45 //
46 // USE ONLY IN JAPAN. DO NOT USE THIS SOFTWARE IN ANOTHER COUNTRY UNLESS YOU HAVE
47 // A CONFIRMATION THAT THIS SOFTWARE DOES NOT VIOLATE ANY CRIMINAL LAWS OR CIVIL
48 // RIGHTS IN THAT PARTICULAR COUNTRY. USING THIS SOFTWARE IN OTHER COUNTRIES IS
49 // COMPLETELY AT YOUR OWN RISK. THE SOFTETHER VPN PROJECT HAS DEVELOPED AND
50 // DISTRIBUTED THIS SOFTWARE TO COMPLY ONLY WITH THE JAPANESE LAWS AND EXISTING
51 // CIVIL RIGHTS INCLUDING PATENTS WHICH ARE SUBJECTS APPLY IN JAPAN. OTHER
52 // COUNTRIES' LAWS OR CIVIL RIGHTS ARE NONE OF OUR CONCERNS NOR RESPONSIBILITIES.
53 // WE HAVE NEVER INVESTIGATED ANY CRIMINAL REGULATIONS, CIVIL LAWS OR
54 // INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENTS IN ANY OF OTHER 200+ COUNTRIES
55 // AND TERRITORIES. BY NATURE, THERE ARE 200+ REGIONS IN THE WORLD, WITH
56 // DIFFERENT LAWS. IT IS IMPOSSIBLE TO VERIFY EVERY COUNTRIES' LAWS, REGULATIONS
57 // AND CIVIL RIGHTS TO MAKE THE SOFTWARE COMPLY WITH ALL COUNTRIES' LAWS BY THE
58 // PROJECT. EVEN IF YOU WILL BE SUED BY A PRIVATE ENTITY OR BE DAMAGED BY A
59 // PUBLIC SERVANT IN YOUR COUNTRY, THE DEVELOPERS OF THIS SOFTWARE WILL NEVER BE
60 // LIABLE TO RECOVER OR COMPENSATE SUCH DAMAGES, CRIMINAL OR CIVIL
61 // RESPONSIBILITIES. NOTE THAT THIS LINE IS NOT LICENSE RESTRICTION BUT JUST A
62 // STATEMENT FOR WARNING AND DISCLAIMER.
63 //
64 // READ AND UNDERSTAND THE 'WARNING.TXT' FILE BEFORE USING THIS SOFTWARE.
65 // SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH
66 // LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'THIRD_PARTY.TXT' FILE.
67 //
68 //
69 // SOURCE CODE CONTRIBUTION
70 // ------------------------
71 //
72 // Your contribution to SoftEther VPN Project is much appreciated.
73 // Please send patches to us through GitHub.
74 // Read the SoftEther VPN Patch Acceptance Policy in advance:
75 // http://www.softether.org/5-download/src/9.patch
76 //
77 //
78 // DEAR SECURITY EXPERTS
79 // ---------------------
80 //
81 // If you find a bug or a security vulnerability please kindly inform us
82 // about the problem immediately so that we can fix the security problem
83 // to protect a lot of users around the world as soon as possible.
84 //
85 // Our e-mail address for security reports is:
86 // softether-vpn-security [at] softether.org
87 //
88 // Please note that the above e-mail address is not a technical support
89 // inquiry address. If you need technical assistance, please visit
90 // http://www.softether.org/ and ask your question on the users forum.
91 //
92 // Thank you for your cooperation.
93 //
94 //
95 // NO MEMORY OR RESOURCE LEAKS
96 // ---------------------------
97 //
98 // The memory-leaks and resource-leaks verification under the stress
99 // test has been passed before release this source code.
100 
101 
102 // CedarType.h
103 // List of types that Cedar using
104 
105 #ifndef	CEDARTYPE_H
106 #define	CEDARTYPE_H
107 
108 
109 // ==============================================================
110 //   Remote Procedure Call
111 // ==============================================================
112 
113 typedef struct RPC RPC;
114 
115 
116 // ==============================================================
117 //   Account
118 // ==============================================================
119 
120 typedef struct POLICY_ITEM POLICY_ITEM;
121 typedef struct POLICY POLICY;
122 typedef struct USERGROUP USERGROUP;
123 typedef struct USER USER;
124 typedef struct AUTHPASSWORD AUTHPASSWORD;
125 typedef struct AUTHUSERCERT AUTHUSERCERT;
126 typedef struct AUTHROOTCERT AUTHROOTCERT;
127 typedef struct AUTHRADIUS AUTHRADIUS;
128 typedef struct AUTHNT AUTHNT;
129 
130 
131 // ==============================================================
132 //   RADIUS
133 // ==============================================================
134 
135 typedef struct RADIUS_LOGIN_OPTION RADIUS_LOGIN_OPTION;
136 typedef struct RADIUS_PACKET RADIUS_PACKET;
137 typedef struct RADIUS_AVP RADIUS_AVP;
138 typedef struct EAP_CLIENT EAP_CLIENT;
139 typedef struct EAP_MESSAGE EAP_MESSAGE;
140 typedef struct EAP_MSCHAPV2_GENERAL EAP_MSCHAPV2_GENERAL;
141 typedef struct EAP_MSCHAPV2_CHALLENGE EAP_MSCHAPV2_CHALLENGE;
142 typedef struct EAP_MSCHAPV2_RESPONSE EAP_MSCHAPV2_RESPONSE;
143 typedef struct EAP_MSCHAPV2_SUCCESS_SERVER EAP_MSCHAPV2_SUCCESS_SERVER;
144 typedef struct EAP_MSCHAPV2_SUCCESS_CLIENT EAP_MSCHAPV2_SUCCESS_CLIENT;
145 typedef struct EAP_PEAP EAP_PEAP;
146 
147 
148 // ==============================================================
149 //   Listener
150 // ==============================================================
151 
152 typedef struct DOS DOS;
153 typedef struct LISTENER LISTENER;
154 typedef struct TCP_ACCEPTED_PARAM TCP_ACCEPTED_PARAM;
155 typedef struct UDP_ENTRY UDP_ENTRY;
156 typedef struct DYNAMIC_LISTENER DYNAMIC_LISTENER;
157 
158 
159 // ==============================================================
160 //   Logging
161 // ==============================================================
162 
163 typedef struct PACKET_LOG PACKET_LOG;
164 typedef struct HUB_LOG HUB_LOG;
165 typedef struct RECORD RECORD;
166 typedef struct LOG LOG;
167 typedef struct ERASER ERASER;
168 typedef struct SLOG SLOG;
169 
170 
171 // ==============================================================
172 //   Connection
173 // ==============================================================
174 
175 typedef struct KEEP KEEP;
176 typedef struct SECURE_SIGN SECURE_SIGN;
177 typedef struct RC4_KEY_PAIR RC4_KEY_PAIR;
178 typedef struct CLIENT_OPTION CLIENT_OPTION;
179 typedef struct CLIENT_AUTH CLIENT_AUTH;
180 typedef struct TCPSOCK TCPSOCK;
181 typedef struct TCP TCP;
182 typedef struct UDP UDP;
183 typedef struct BLOCK BLOCK;
184 typedef struct CONNECTION CONNECTION;
185 
186 
187 // ==============================================================
188 //   Session
189 // ==============================================================
190 
191 typedef struct NODE_INFO NODE_INFO;
192 typedef struct PACKET_ADAPTER PACKET_ADAPTER;
193 typedef struct SESSION SESSION;
194 typedef struct UI_PASSWORD_DLG UI_PASSWORD_DLG;
195 typedef struct UI_MSG_DLG UI_MSG_DLG;
196 typedef struct UI_NICINFO UI_NICINFO;
197 typedef struct UI_CONNECTERROR_DLG UI_CONNECTERROR_DLG;
198 typedef struct UI_CHECKCERT UI_CHECKCERT;
199 
200 
201 // ==============================================================
202 //   Hub
203 // ==============================================================
204 
205 typedef struct SE_LINK SE_LINK;
206 typedef struct TEST_HISTORY TEST_HISTORY;
207 typedef struct SE_TEST SE_TEST;
208 typedef struct HUBDB HUBDB;
209 typedef struct TRAFFIC_LIMITER TRAFFIC_LIMITER;
210 typedef struct STORM STORM;
211 typedef struct HUB_PA HUB_PA;
212 typedef struct HUB_OPTION HUB_OPTION;
213 typedef struct MAC_TABLE_ENTRY MAC_TABLE_ENTRY;
214 typedef struct IP_TABLE_ENTRY IP_TABLE_ENTRY;
215 typedef struct LOOP_LIST LOOP_LIST;
216 typedef struct ACCESS ACCESS;
217 typedef struct TICKET TICKET;
218 typedef struct TRAFFIC_DIFF TRAFFIC_DIFF;
219 typedef struct HUB HUB;
220 typedef struct ADMIN_OPTION ADMIN_OPTION;
221 typedef struct CRL CRL;
222 typedef struct AC AC;
223 typedef struct USERLIST USERLIST;
224 
225 
226 // ==============================================================
227 //   Protocol
228 // ==============================================================
229 
230 typedef struct CHECK_CERT_THREAD_PROC CHECK_CERT_THREAD_PROC;
231 typedef struct SECURE_SIGN_THREAD_PROC SECURE_SIGN_THREAD_PROC;
232 typedef struct RAND_CACHE RAND_CACHE;
233 typedef struct BLACK BLACK;
234 typedef struct SEND_SIGNATURE_PARAM SEND_SIGNATURE_PARAM;
235 typedef struct UPDATE_CLIENT UPDATE_CLIENT;
236 typedef struct UPDATE_CLIENT_SETTING UPDATE_CLIENT_SETTING;
237 typedef struct HTTP_MIME_TYPE HTTP_MIME_TYPE;
238 typedef struct WS WS;
239 typedef struct WSP WSP;
240 
241 
242 // ==============================================================
243 //   Link
244 // ==============================================================
245 
246 typedef struct LINK LINK;
247 
248 
249 // ==============================================================
250 //   Virtual
251 // ==============================================================
252 
253 typedef struct ARP_ENTRY ARP_ENTRY;
254 typedef struct ARP_WAIT ARP_WAIT;
255 typedef struct IP_WAIT IP_WAIT;
256 typedef struct IP_PART IP_PART;
257 typedef struct IP_COMBINE IP_COMBINE;
258 typedef struct NAT_ENTRY NAT_ENTRY;
259 typedef struct TCP_OPTION TCP_OPTION;
260 typedef struct VH VH;
261 typedef struct VH_OPTION VH_OPTION;
262 typedef struct DHCP_LEASE DHCP_LEASE;
263 typedef struct NATIVE_NAT NATIVE_NAT;
264 typedef struct NATIVE_NAT_ENTRY NATIVE_NAT_ENTRY;
265 typedef struct DNS_PARSED_PACKET DNS_PARSED_PACKET;
266 
267 
268 // ==============================================================
269 //   WPC
270 // ==============================================================
271 
272 typedef struct INTERNET_SETTING INTERNET_SETTING;
273 typedef struct URL_DATA URL_DATA;
274 typedef struct WPC_ENTRY WPC_ENTRY;
275 typedef struct WPC_PACKET WPC_PACKET;
276 typedef struct WPC_CONNECT WPC_CONNECT;
277 
278 // ==============================================================
279 //   VLAN
280 // ==============================================================
281 
282 typedef struct ROUTE_TRACKING ROUTE_TRACKING;
283 typedef struct VLAN VLAN;
284 typedef struct INSTANCE_LIST INSTANCE_LIST;
285 typedef struct VLAN_PARAM VLAN_PARAM;
286 
287 #ifdef	OS_UNIX
288 typedef struct UNIX_VLAN_LIST UNIX_VLAN_LIST;
289 #endif	// OS_UNIX
290 
291 // ==============================================================
292 //   Null LAN
293 // ==============================================================
294 
295 typedef struct NULL_LAN NULL_LAN;
296 
297 
298 // ==============================================================
299 //   Bridge
300 // ==============================================================
301 
302 typedef struct ETH ETH;
303 typedef struct BRIDGE BRIDGE;
304 typedef struct LOCALBRIDGE LOCALBRIDGE;
305 
306 
307 // ==============================================================
308 //   Layer-3 Switch
309 // ==============================================================
310 
311 typedef struct L3IF L3IF;
312 typedef struct L3SW L3SW;
313 typedef struct L3TABLE L3TABLE;
314 typedef struct L3ARPENTRY L3ARPENTRY;
315 typedef struct L3ARPWAIT L3ARPWAIT;
316 typedef struct L3PACKET L3PACKET;
317 
318 
319 // ==============================================================
320 //   Client
321 // ==============================================================
322 
323 typedef struct ACCOUNT ACCOUNT;
324 typedef struct CLIENT_CONFIG CLIENT_CONFIG;
325 typedef struct RPC_CLIENT_VERSION RPC_CLIENT_VERSION;
326 typedef struct RPC_CLIENT_PASSWORD RPC_CLIENT_PASSWORD;
327 typedef struct RPC_CLIENT_PASSWORD_SETTING RPC_CLIENT_PASSWORD_SETTING;
328 typedef struct RPC_CLIENT_ENUM_CA_ITEM RPC_CLIENT_ENUM_CA_ITEM;
329 typedef struct RPC_CLIENT_ENUM_CA RPC_CLIENT_ENUM_CA;
330 typedef struct RPC_CERT RPC_CERT;
331 typedef struct RPC_CLIENT_DELETE_CA RPC_CLIENT_DELETE_CA;
332 typedef struct RPC_GET_CA RPC_GET_CA;
333 typedef struct RPC_GET_ISSUER RPC_GET_ISSUER;
334 typedef struct RPC_CLIENT_ENUM_SECURE_ITEM RPC_CLIENT_ENUM_SECURE_ITEM;
335 typedef struct RPC_CLIENT_ENUM_SECURE RPC_CLIENT_ENUM_SECURE;
336 typedef struct RPC_USE_SECURE RPC_USE_SECURE;
337 typedef struct RPC_ENUM_OBJECT_IN_SECURE RPC_ENUM_OBJECT_IN_SECURE;
338 typedef struct RPC_CLIENT_CREATE_VLAN RPC_CLIENT_CREATE_VLAN;
339 typedef struct RPC_CLIENT_GET_VLAN RPC_CLIENT_GET_VLAN;
340 typedef struct RPC_CLIENT_SET_VLAN RPC_CLIENT_SET_VLAN;
341 typedef struct RPC_CLIENT_ENUM_VLAN_ITEM RPC_CLIENT_ENUM_VLAN_ITEM;
342 typedef struct RPC_CLIENT_ENUM_VLAN RPC_CLIENT_ENUM_VLAN;
343 typedef struct RPC_CLIENT_CREATE_ACCOUNT RPC_CLIENT_CREATE_ACCOUNT;
344 typedef struct RPC_CLIENT_ENUM_ACCOUNT_ITEM RPC_CLIENT_ENUM_ACCOUNT_ITEM;
345 typedef struct RPC_CLIENT_ENUM_ACCOUNT RPC_CLIENT_ENUM_ACCOUNT;
346 typedef struct RPC_CLIENT_DELETE_ACCOUNT RPC_CLIENT_DELETE_ACCOUNT;
347 typedef struct RPC_RENAME_ACCOUNT RPC_RENAME_ACCOUNT;
348 typedef struct RPC_CLIENT_GET_ACCOUNT RPC_CLIENT_GET_ACCOUNT;
349 typedef struct RPC_CLIENT_CONNECT RPC_CLIENT_CONNECT;
350 typedef struct RPC_CLIENT_GET_CONNECTION_STATUS RPC_CLIENT_GET_CONNECTION_STATUS;
351 typedef struct CLIENT_RPC_CONNECTION CLIENT_RPC_CONNECTION;
352 typedef struct CLIENT CLIENT;
353 typedef struct RPC_CLIENT_NOTIFY RPC_CLIENT_NOTIFY;
354 typedef struct REMOTE_CLIENT REMOTE_CLIENT;
355 typedef struct NOTIFY_CLIENT NOTIFY_CLIENT;
356 typedef struct UNIX_VLAN UNIX_VLAN;
357 typedef struct CM_SETTING CM_SETTING;
358 
359 
360 // ==============================================================
361 //   Server
362 // ==============================================================
363 
364 typedef struct HUB_LIST HUB_LIST;
365 typedef struct FARM_TASK FARM_TASK;
366 typedef struct FARM_MEMBER FARM_MEMBER;
367 typedef struct FARM_CONTROLLER FARM_CONTROLLER;
368 typedef struct SERVER_LISTENER SERVER_LISTENER;
369 typedef struct SERVER SERVER;
370 typedef struct RPC_ENUM_SESSION RPC_ENUM_SESSION;
371 typedef struct RPC_SESSION_STATUS RPC_SESSION_STATUS;
372 typedef struct CAPS CAPS;
373 typedef struct CAPSLIST CAPSLIST;
374 typedef struct LOG_FILE LOG_FILE;
375 typedef struct SYSLOG_SETTING SYSLOG_SETTING;
376 typedef struct HUB_SNAPSHOT HUB_SNAPSHOT;
377 typedef struct SERVER_SNAPSHOT SERVER_SNAPSHOT;
378 typedef struct SERVER_HUB_CREATE_HISTORY SERVER_HUB_CREATE_HISTORY;
379 typedef struct OPENVPN_SSTP_CONFIG OPENVPN_SSTP_CONFIG;
380 
381 // ==============================================================
382 //   Server Admin Tool
383 // ==============================================================
384 
385 typedef struct ADMIN ADMIN;
386 typedef struct RPC_TEST RPC_TEST;
387 typedef struct RPC_SERVER_INFO RPC_SERVER_INFO;
388 typedef struct RPC_SERVER_STATUS RPC_SERVER_STATUS;
389 typedef struct RPC_LISTENER RPC_LISTENER;
390 typedef struct RPC_LISTENER_LIST RPC_LISTENER_LIST;
391 typedef struct RPC_STR RPC_STR;
392 typedef struct RPC_SET_PASSWORD RPC_SET_PASSWORD;
393 typedef struct RPC_FARM RPC_FARM;
394 typedef struct RPC_FARM_HUB RPC_FARM_HUB;
395 typedef struct RPC_FARM_INFO RPC_FARM_INFO;
396 typedef struct RPC_ENUM_FARM_ITEM RPC_ENUM_FARM_ITEM;
397 typedef struct RPC_ENUM_FARM RPC_ENUM_FARM;
398 typedef struct RPC_FARM_CONNECTION_STATUS RPC_FARM_CONNECTION_STATUS;
399 typedef struct RPC_KEY_PAIR RPC_KEY_PAIR;
400 typedef struct RPC_HUB_OPTION RPC_HUB_OPTION;
401 typedef struct RPC_RADIUS RPC_RADIUS;
402 typedef struct RPC_HUB RPC_HUB;
403 typedef struct RPC_CREATE_HUB RPC_CREATE_HUB;
404 typedef struct RPC_ENUM_HUB_ITEM RPC_ENUM_HUB_ITEM;
405 typedef struct RPC_ENUM_HUB RPC_ENUM_HUB;
406 typedef struct RPC_DELETE_HUB RPC_DELETE_HUB;
407 typedef struct RPC_ENUM_CONNECTION_ITEM RPC_ENUM_CONNECTION_ITEM;
408 typedef struct RPC_ENUM_CONNECTION RPC_ENUM_CONNECTION;
409 typedef struct RPC_DISCONNECT_CONNECTION RPC_DISCONNECT_CONNECTION;
410 typedef struct RPC_CONNECTION_INFO RPC_CONNECTION_INFO;
411 typedef struct RPC_SET_HUB_ONLINE RPC_SET_HUB_ONLINE;
412 typedef struct RPC_HUB_STATUS RPC_HUB_STATUS;
413 typedef struct RPC_HUB_LOG RPC_HUB_LOG;
414 typedef struct RPC_HUB_ADD_CA RPC_HUB_ADD_CA;
415 typedef struct RPC_HUB_ENUM_CA_ITEM RPC_HUB_ENUM_CA_ITEM;
416 typedef struct RPC_HUB_ENUM_CA RPC_HUB_ENUM_CA;
417 typedef struct RPC_HUB_GET_CA RPC_HUB_GET_CA;
418 typedef struct RPC_HUB_DELETE_CA RPC_HUB_DELETE_CA;
419 typedef struct RPC_CREATE_LINK RPC_CREATE_LINK;
420 typedef struct RPC_ENUM_LINK_ITEM RPC_ENUM_LINK_ITEM;
421 typedef struct RPC_ENUM_LINK RPC_ENUM_LINK;
422 typedef struct RPC_LINK_STATUS RPC_LINK_STATUS;
423 typedef struct RPC_LINK RPC_LINK;
424 typedef struct RPC_ENUM_ACCESS_LIST RPC_ENUM_ACCESS_LIST;
425 typedef struct RPC_ADD_ACCESS RPC_ADD_ACCESS;
426 typedef struct RPC_DELETE_ACCESS RPC_DELETE_ACCESS;
427 typedef struct RPC_SET_USER RPC_SET_USER;
428 typedef struct RPC_ENUM_USER_ITEM RPC_ENUM_USER_ITEM;
429 typedef struct RPC_ENUM_USER RPC_ENUM_USER;
430 typedef struct RPC_SET_GROUP RPC_SET_GROUP;
431 typedef struct RPC_ENUM_GROUP_ITEM RPC_ENUM_GROUP_ITEM;
432 typedef struct RPC_ENUM_GROUP RPC_ENUM_GROUP;
433 typedef struct RPC_DELETE_USER RPC_DELETE_USER;
434 typedef struct RPC_ENUM_SESSION_ITEM RPC_ENUM_SESSION_ITEM;
435 typedef struct RPC_DELETE_SESSION RPC_DELETE_SESSION;
436 typedef struct RPC_ENUM_MAC_TABLE_ITEM RPC_ENUM_MAC_TABLE_ITEM;
437 typedef struct RPC_ENUM_MAC_TABLE RPC_ENUM_MAC_TABLE;
438 typedef struct RPC_ENUM_IP_TABLE_ITEM RPC_ENUM_IP_TABLE_ITEM;
439 typedef struct RPC_ENUM_IP_TABLE RPC_ENUM_IP_TABLE;
440 typedef struct RPC_DELETE_TABLE RPC_DELETE_TABLE;
441 typedef struct RPC_KEEP RPC_KEEP;
442 typedef struct RPC_ENUM_ETH_ITEM RPC_ENUM_ETH_ITEM;
443 typedef struct RPC_ENUM_ETH RPC_ENUM_ETH;
444 typedef struct RPC_LOCALBRIDGE RPC_LOCALBRIDGE;
445 typedef struct RPC_ENUM_LOCALBRIDGE RPC_ENUM_LOCALBRIDGE;
446 typedef struct RPC_BRIDGE_SUPPORT RPC_BRIDGE_SUPPORT;
447 typedef struct RPC_CONFIG RPC_CONFIG;
448 typedef struct RPC_ADMIN_OPTION RPC_ADMIN_OPTION;
449 typedef struct RPC_L3SW RPC_L3SW;
450 typedef struct RPC_L3IF RPC_L3IF;
451 typedef struct RPC_L3TABLE RPC_L3TABLE;
452 typedef struct RPC_ENUM_L3SW_ITEM RPC_ENUM_L3SW_ITEM;
453 typedef struct RPC_ENUM_L3SW RPC_ENUM_L3SW;
454 typedef struct RPC_ENUM_L3IF RPC_ENUM_L3IF;
455 typedef struct RPC_ENUM_L3TABLE RPC_ENUM_L3TABLE;
456 typedef struct RPC_CRL RPC_CRL;
457 typedef struct RPC_ENUM_CRL_ITEM RPC_ENUM_CRL_ITEM;
458 typedef struct RPC_ENUM_CRL RPC_ENUM_CRL;
459 typedef struct RPC_INT RPC_INT;
460 typedef struct RPC_AC_LIST RPC_AC_LIST;
461 typedef struct RPC_ENUM_LOG_FILE_ITEM RPC_ENUM_LOG_FILE_ITEM;
462 typedef struct RPC_ENUM_LOG_FILE RPC_ENUM_LOG_FILE;
463 typedef struct RPC_READ_LOG_FILE RPC_READ_LOG_FILE;
464 typedef struct DOWNLOAD_PROGRESS DOWNLOAD_PROGRESS;
465 typedef struct RPC_RENAME_LINK RPC_RENAME_LINK;
466 typedef struct RPC_ENUM_LICENSE_KEY RPC_ENUM_LICENSE_KEY;
467 typedef struct RPC_ENUM_LICENSE_KEY_ITEM RPC_ENUM_LICENSE_KEY_ITEM;
468 typedef struct RPC_LICENSE_STATUS RPC_LICENSE_STATUS;
469 typedef struct RPC_ENUM_ETH_VLAN_ITEM RPC_ENUM_ETH_VLAN_ITEM;
470 typedef struct RPC_ENUM_ETH_VLAN RPC_ENUM_ETH_VLAN;
471 typedef struct RPC_MSG RPC_MSG;
472 typedef struct RPC_WINVER RPC_WINVER;
473 typedef struct RPC_ENUM_ETHERIP_ID RPC_ENUM_ETHERIP_ID;
474 typedef struct RPC_SPECIAL_LISTENER RPC_SPECIAL_LISTENER;
475 typedef struct RPC_AZURE_STATUS RPC_AZURE_STATUS;
476 
477 
478 // ==============================================================
479 //  NAT
480 // ==============================================================
481 
482 typedef struct NAT NAT;
483 typedef struct NAT_ADMIN NAT_ADMIN;
484 typedef struct RPC_DUMMY RPC_DUMMY;
485 typedef struct RPC_NAT_STATUS RPC_NAT_STATUS;
486 typedef struct RPC_NAT_INFO RPC_NAT_INFO;
487 typedef struct RPC_ENUM_NAT_ITEM RPC_ENUM_NAT_ITEM;
488 typedef struct RPC_ENUM_NAT RPC_ENUM_NAT;
489 typedef struct RPC_ENUM_DHCP_ITEM RPC_ENUM_DHCP_ITEM;
490 typedef struct RPC_ENUM_DHCP RPC_ENUM_DHCP;
491 
492 
493 // ==============================================================
494 //  SecureNAT
495 // ==============================================================
496 
497 typedef struct SNAT SNAT;
498 
499 
500 // ==============================================================
501 //  WinUI
502 // ==============================================================
503 
504 typedef struct LED LED;
505 typedef struct WIZARD WIZARD;
506 typedef struct WIZARD_PAGE WIZARD_PAGE;
507 typedef struct WINUI_UPDATE WINUI_UPDATE;
508 typedef struct WINUI_UPDATE_DLG_PARAM WINUI_UPDATE_DLG_PARAM;
509 
510 
511 
512 // ==============================================================
513 //  Console
514 // ==============================================================
515 
516 typedef struct PARAM PARAM;
517 typedef struct PARAM_VALUE PARAM_VALUE;
518 typedef struct CONSOLE CONSOLE;
519 typedef struct LOCAL_CONSOLE_PARAM LOCAL_CONSOLE_PARAM;
520 typedef struct CMD CMD;
521 typedef struct CMD_EVAL_MIN_MAX CMD_EVAL_MIN_MAX;
522 
523 
524 // ==============================================================
525 //  Command
526 // ==============================================================
527 
528 typedef struct PS PS;
529 typedef struct PC PC;
530 typedef struct CT CT;
531 typedef struct CTC CTC;
532 typedef struct CTR CTR;
533 typedef struct TTC TTC;
534 typedef struct TTS TTS;
535 typedef struct TTS_WORKER TTS_WORKER;
536 typedef struct TTC_WORKER TTC_WORKER;
537 typedef struct TT_RESULT TT_RESULT;
538 typedef struct TTS_SOCK TTS_SOCK;
539 typedef struct TTC_SOCK TTC_SOCK;
540 typedef struct PT PT;
541 
542 // ==============================================================
543 //  EtherLogger
544 // ==============================================================
545 
546 typedef struct EL EL;
547 typedef struct EL_DEVICE EL_DEVICE;
548 typedef struct EL_LICENSE_STATUS EL_LICENSE_STATUS;
549 typedef struct RPC_ADD_DEVICE RPC_ADD_DEVICE;
550 typedef struct RPC_DELETE_DEVICE RPC_DELETE_DEVICE;
551 typedef struct RPC_ENUM_DEVICE_ITEM RPC_ENUM_DEVICE_ITEM;
552 typedef struct RPC_ENUM_DEVICE RPC_ENUM_DEVICE;
553 typedef struct RPC_EL_LICENSE_STATUS RPC_EL_LICENSE_STATUS;
554 
555 
556 // ==============================================================
557 //  Database
558 // ==============================================================
559 
560 typedef struct LICENSE_PRODUCT LICENSE_PRODUCT;
561 typedef struct LICENSE_SYSTEM LICENSE_SYSTEM;
562 typedef struct LICENSE_DATA LICENSE_DATA;
563 typedef struct LICENSE LICENSE;
564 typedef struct LICENSE_STATUS LICENSE_STATUS;
565 typedef struct SECURE_PACK_FOLDER SECURE_PACK_FOLDER;
566 typedef struct WIDE_MACHINE_ID WIDE_MACHINE_ID;
567 typedef struct TRIAL_INFO TRIAL_INFO;
568 
569 
570 // ==============================================================
571 //  IPsec
572 // ==============================================================
573 
574 typedef struct IPSEC_SERVER IPSEC_SERVER;
575 typedef struct IPSEC_SERVICES IPSEC_SERVICES;
576 typedef struct ETHERIP_ID ETHERIP_ID;
577 
578 
579 // ==============================================================
580 //  L2TP
581 // ==============================================================
582 
583 typedef struct L2TP_SERVER L2TP_SERVER;
584 typedef struct L2TP_TUNNEL L2TP_TUNNEL;
585 typedef struct L2TP_SESSION L2TP_SESSION;
586 typedef struct L2TP_PACKET L2TP_PACKET;
587 typedef struct L2TP_AVP L2TP_AVP;
588 typedef struct L2TP_QUEUE L2TP_QUEUE;
589 
590 
591 // ==============================================================
592 //  PPP
593 // ==============================================================
594 
595 typedef struct PPP_SESSION PPP_SESSION;
596 typedef struct PPP_OPTION PPP_OPTION;
597 typedef struct PPP_LCP PPP_LCP;
598 typedef struct PPP_PACKET PPP_PACKET;
599 typedef struct PPP_IPOPTION PPP_IPOPTION;
600 
601 
602 // ==============================================================
603 //  EtherIP
604 // ==============================================================
605 
606 typedef struct ETHERIP_SERVER ETHERIP_SERVER;
607 
608 
609 // ==============================================================
610 //  IKE
611 // ==============================================================
612 
613 typedef struct IKE_SERVER IKE_SERVER;
614 typedef struct IKE_SA IKE_SA;
615 typedef struct IKE_SA_TRANSFORM_SETTING IKE_SA_TRANSFORM_SETTING;
616 typedef struct IKE_CLIENT IKE_CLIENT;
617 typedef struct IPSECSA IPSECSA;
618 typedef struct IKE_CAPS IKE_CAPS;
619 typedef struct IKE_INFOMSG_QUOTA_ENTRY IKE_INFOMSG_QUOTA_ENTRY;
620 
621 // ==============================================================
622 //  IPSec Packet
623 // ==============================================================
624 
625 typedef struct IKE_COMMON_HEADER IKE_COMMON_HEADER;
626 typedef struct IKE_SA_HEADER IKE_SA_HEADER;
627 typedef struct IKE_PROPOSAL_HEADER IKE_PROPOSAL_HEADER;
628 typedef struct IKE_TRANSFORM_HEADER IKE_TRANSFORM_HEADER;
629 typedef struct IKE_TRANSFORM_VALUE IKE_TRANSFORM_VALUE;
630 typedef struct IKE_ID_HEADER IKE_ID_HEADER;
631 typedef struct IKE_CERT_HEADER IKE_CERT_HEADER;
632 typedef struct IKE_CERT_REQUEST_HEADER IKE_CERT_REQUEST_HEADER;
633 typedef struct IKE_NOTICE_HEADER IKE_NOTICE_HEADER;
634 typedef struct IKE_DELETE_HEADER IKE_DELETE_HEADER;
635 typedef struct IKE_NAT_OA_HEADER IKE_NAT_OA_HEADER;
636 typedef struct IPSEC_SA_TRANSFORM_SETTING IPSEC_SA_TRANSFORM_SETTING;
637 
638 typedef struct IKE_PACKET_SA_PAYLOAD IKE_PACKET_SA_PAYLOAD;
639 typedef struct IKE_PACKET_PROPOSAL_PAYLOAD IKE_PACKET_PROPOSAL_PAYLOAD;
640 typedef struct IKE_PACKET_TRANSFORM_PAYLOAD IKE_PACKET_TRANSFORM_PAYLOAD;
641 typedef struct IKE_PACKET_TRANSFORM_VALUE IKE_PACKET_TRANSFORM_VALUE;
642 typedef struct IKE_PACKET_DATA_PAYLOAD IKE_PACKET_DATA_PAYLOAD;
643 typedef struct IKE_PACKET_ID_PAYLOAD IKE_PACKET_ID_PAYLOAD;
644 typedef struct IKE_PACKET_CERT_PAYLOAD IKE_PACKET_CERT_PAYLOAD;
645 typedef struct IKE_PACKET_CERT_REQUEST_PAYLOAD IKE_PACKET_CERT_REQUEST_PAYLOAD;
646 typedef struct IKE_PACKET_NOTICE_PAYLOAD IKE_PACKET_NOTICE_PAYLOAD;
647 typedef struct IKE_PACKET_DELETE_PAYLOAD IKE_PACKET_DELETE_PAYLOAD;
648 typedef struct IKE_PACKET_NAT_OA_PAYLOAD IKE_PACKET_NAT_OA_PAYLOAD;
649 
650 typedef struct IKE_PACKET_PAYLOAD IKE_PACKET_PAYLOAD;
651 typedef struct IKE_PACKET IKE_PACKET;
652 
653 typedef struct IKE_P1_KEYSET IKE_P1_KEYSET;
654 
655 typedef struct IKE_CRYPTO IKE_CRYPTO;
656 typedef struct IKE_HASH IKE_HASH;
657 typedef struct IKE_DH IKE_DH;
658 typedef struct IKE_ENGINE IKE_ENGINE;
659 typedef struct IKE_CRYPTO_KEY IKE_CRYPTO_KEY;
660 typedef struct IKE_CRYPTO_PARAM IKE_CRYPTO_PARAM;
661 
662 
663 // ==============================================================
664 //  IPSec for Windows 7 / Vista / 2008 / 2008 R2
665 // ==============================================================
666 
667 typedef struct IPSEC_WIN7 IPSEC_WIN7;
668 
669 
670 // ==============================================================
671 //  In-Process VPN Client
672 // ==============================================================
673 
674 typedef struct IPC IPC;
675 typedef struct IPC_ARP IPC_ARP;
676 typedef struct IPC_ASYNC IPC_ASYNC;
677 typedef struct IPC_PARAM IPC_PARAM;
678 typedef struct IPC_DHCP_RELESAE_QUEUE IPC_DHCP_RELESAE_QUEUE;
679 typedef struct IPC_MSCHAP_V2_AUTHINFO IPC_MSCHAP_V2_AUTHINFO;
680 typedef struct IPC_SESSION_SHARED_BUFFER_DATA IPC_SESSION_SHARED_BUFFER_DATA;
681 
682 
683 // ==============================================================
684 //   UDP Acceleration
685 // ==============================================================
686 
687 typedef struct UDP_ACCEL UDP_ACCEL;
688 
689 
690 // ==============================================================
691 //   SSTP (Microsoft Secure Socket Tunneling Protocol) Stack
692 // ==============================================================
693 
694 typedef struct SSTP_SERVER SSTP_SERVER;
695 typedef struct SSTP_PACKET SSTP_PACKET;
696 typedef struct SSTP_ATTRIBUTE SSTP_ATTRIBUTE;
697 
698 
699 // ==============================================================
700 //   OpenVPN Protocol Stack
701 // ==============================================================
702 
703 typedef struct OPENVPN_SERVER OPENVPN_SERVER;
704 typedef struct OPENVPN_SERVER_UDP OPENVPN_SERVER_UDP;
705 typedef struct OPENVPN_SESSION OPENVPN_SESSION;
706 typedef struct OPENVPN_CHANNEL OPENVPN_CHANNEL;
707 typedef struct OPENVPN_PACKET OPENVPN_PACKET;
708 typedef struct OPENVPN_CONTROL_PACKET OPENVPN_CONTROL_PACKET;
709 typedef struct OPENVPN_KEY_METHOD_2 OPENVPN_KEY_METHOD_2;
710 
711 
712 // ==============================================================
713 //   Dynamic DNS Client
714 // ==============================================================
715 
716 typedef struct DDNS_CLIENT DDNS_CLIENT;
717 typedef struct DDNS_REGISTER_PARAM DDNS_REGISTER_PARAM;
718 typedef struct DDNS_CLIENT_STATUS DDNS_CLIENT_STATUS;
719 
720 
721 // ==============================================================
722 //   VPN Azure Client
723 // ==============================================================
724 typedef struct AZURE_CLIENT AZURE_CLIENT;
725 typedef struct AZURE_PARAM AZURE_PARAM;
726 
727 
728 // ==============================================================
729 //  VPN Gate Service
730 // ==============================================================
731 
732 typedef struct VGS VGS;
733 typedef struct VGS_CONFIG VGS_CONFIG;
734 typedef struct VGC VGC;
735 typedef struct VGHOST VGHOST;
736 typedef struct VGHOSTLIST VGHOSTLIST;
737 typedef struct VGHOSTDAT VGHOSTDAT;
738 typedef struct VGCPOLLTASK VGCPOLLTASK;
739 typedef struct VGS_LOG VGS_LOG;
740 typedef struct VGC_UDPHOST VGC_UDPHOST;
741 typedef struct MIRROR_SERVER MIRROR_SERVER;
742 
743 
744 // ==============================================================
745 //   Native Stack
746 // ==============================================================
747 
748 typedef struct NATIVE_STACK NATIVE_STACK;
749 typedef struct IPTABLES_STATE IPTABLES_STATE;
750 typedef struct IPTABLES_ENTRY IPTABLES_ENTRY;
751 
752 
753 // ==============================================================
754 //  SeLow User-mode
755 // ==============================================================
756 
757 typedef struct SU SU;
758 typedef struct SU_ADAPTER SU_ADAPTER;
759 typedef struct SU_ADAPTER_LIST SU_ADAPTER_LIST;
760 
761 
762 
763 #endif	// CEDARTYPE_H
764