1 // SoftEther UT-VPN SourceCode
\r
3 // Copyright (C) 2004-2010 SoftEther Corporation.
\r
4 // Copyright (C) 2004-2010 University of Tsukuba, Japan.
\r
5 // Copyright (C) 2003-2010 Daiyuu Nobori.
\r
6 // All Rights Reserved.
\r
8 // http://utvpn.tsukuba.ac.jp/
\r
10 // This program is free software; you can redistribute it and/or
\r
11 // modify it under the terms of the GNU General Public License
\r
12 // version 2 as published by the Free Software Foundation.
\r
14 // This program is distributed in the hope that it will be useful,
\r
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
17 // GNU General Public License for more details.
\r
19 // You should have received a copy of the GNU General Public License version 2
\r
20 // along with this program; if not, write to the Free Software
\r
21 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
\r
23 // このファイルは GPL バージョン 2 ライセンスで公開されています。
\r
24 // 誰でもこのファイルの内容を複製、改変したり、改変したバージョンを再配布
\r
25 // することができます。ただし、原著作物を改変した場合は、原著作物の著作権表示
\r
26 // を除去することはできません。改変した著作物を配布する場合は、改変実施者の
\r
27 // 著作権表示を原著作物の著作権表示に付随して記載するようにしてください。
\r
29 // この SoftEther UT-VPN オープンソース・プロジェクトは、日本国の
\r
30 // ソフトイーサ株式会社 (SoftEther Corporation, http://www.softether.co.jp/ )
\r
31 // および筑波大学 (University of Tsukuba, http://www.tsukuba.ac.jp/ ) によって
\r
33 // 本プログラムの配布者は、本プログラムを、業としての利用以外のため、
\r
34 // および、試験または研究のために利用が行われることを想定して配布
\r
36 // SoftEther UT-VPN プロジェクトの Web サイトは http://utvpn.tsukuba.ac.jp/ に
\r
38 // 本ソフトウェアの不具合の修正、機能改良、セキュリティホールの修復などのコード
\r
39 // の改変を行った場合で、その成果物を SoftEther UT-VPN プロジェクトに提出して
\r
40 // いただける場合は、 http://utvpn.tsukuba.ac.jp/ までソースコードを送付して
\r
41 // ください。SoftEther UT-VPN プロジェクトの本体リリースまたはブランチリリース
\r
44 // GPL に基づいて原著作物が提供される本ソフトウェアの改良版を配布、販売する
\r
45 // 場合は、そのソースコードを GPL に基づいて誰にでも開示する義務が生じます。
\r
47 // 本ソフトウェアに関連する著作権、特許権、商標権はソフトイーサ株式会社
\r
48 // (SoftEther Corporation) およびその他の著作権保持者が保有しています。
\r
49 // ソフトイーサ株式会社等はこれらの権利を放棄していません。本ソフトウェアの
\r
50 // 二次著作物を配布、販売する場合は、これらの権利を侵害しないようにご注意
\r
53 // お願い: どのような通信ソフトウェアにも通常は必ず未発見の
\r
54 // セキュリティホールが潜んでいます。本ソースコードをご覧いただいた結果、
\r
55 // UT-VPN にセキュリティホールを発見された場合は、当該セキュリティホールの
\r
56 // 情報を不特定多数に開示される前に、必ず、ソフトイーサ株式会社
\r
57 // および脆弱性情報の届出を受け付ける公的機関まで通報いただき、
\r
58 // 公益保護にご協力いただきますようお願い申し上げます。
\r
60 // ソフトイーサ株式会社は、当該セキュリティホールについて迅速に対処を
\r
61 // 行い、UT-VPN および UT-VPN に関連するソフトウェアのユーザー・顧客
\r
64 // ソフトイーサへの届出先: http://www.softether.co.jp/jp/contact/
\r
65 // 日本国内の脆弱性情報届出受付公的機関:
\r
67 // http://www.ipa.go.jp/security/vuln/report/
\r
69 // 上記各事項について不明な点は、ソフトイーサ株式会社までご連絡ください。
\r
70 // 連絡先: http://www.softether.co.jp/jp/contact/
\r
72 // -----------------------------------------------
\r
75 // 新規リリース by SoftEther
\r
76 // -----------------------------------------------
\r
82 #define SM_REG_KEY "Software\\SoftEther Corporation\\UT-VPN\\Server Manager"
\r
83 #define SM_CERT_REG_KEY "Software\\SoftEther Corporation\\UT-VPN\\Server Manager\\Cert Tool"
\r
84 #define SM_SETTING_REG_KEY "Software\\SoftEther Corporation\\UT-VPN\\Server Manager\\Settings"
\r
85 #define SM_LASTHUB_REG_KEY "Software\\SoftEther Corporation\\UT-VPN\\Server Manager\\Last HUB Name"
\r
88 #define SM_SETTING_REG_KEY_OLD "Software\\SoftEther Corporation\\PacketiX VPN\\Server Manager\\Settings_Dummy"
\r
91 #define SM_SPLASH_BORDER_COLOR (RGB(72, 72, 72))
\r
94 typedef struct SETTING
\r
96 wchar_t Title[MAX_SIZE]; // 設定名
\r
97 bool ServerAdminMode; // サーバー管理モード
\r
98 char HubName[MAX_HUBNAME_LEN + 1]; // HUB 名
\r
99 UCHAR HashedPassword[SHA1_SIZE]; // パスワード
\r
100 CLIENT_OPTION ClientOption; // クライアントオプション
\r
101 UCHAR Reserved[10240 - sizeof(bool) * 7]; // 予約領域
\r
107 CEDAR *Cedar; // Cedar
\r
108 LIST *SettingList; // 設定リスト
\r
109 SETTING *TempSetting; // 仮設定
\r
110 HWND hParentWnd; // 親ウインドウハンドル
\r
114 typedef struct SM_EDIT_SETTING
\r
116 bool EditMode; // 編集モード
\r
117 SETTING *OldSetting; // 以前の設定へのポインタ
\r
118 SETTING *Setting; // 設定へのポインタ
\r
119 bool Inited; // 初期済みフラグ
\r
123 typedef struct SM_SERVER
\r
126 char ServerName[MAX_HOST_NAME_LEN + 1]; // サーバー名
\r
127 wchar_t Title[MAX_SIZE]; // タイトル
\r
128 bool ServerAdminMode; // サーバー管理モード
\r
129 char HubName[MAX_HUBNAME_LEN + 1]; // HUB 名
\r
130 UINT ServerType; // サーバーの種類
\r
131 bool Bridge; // VPN Bridge 製品
\r
132 UINT PolicyVer; // ポリシーバージョン
\r
133 RPC_SERVER_STATUS ServerStatus; // サーバー状態
\r
134 RPC_SERVER_INFO ServerInfo; // サーバー情報
\r
135 CAPSLIST *CapsList; // Caps リスト
\r
136 bool EmptyPassword; // 空のパスワード
\r
137 SETTING *CurrentSetting; // 現在の接続設定
\r
138 wchar_t *AdminMsg; // 管理者向けメッセージ
\r
141 typedef void (SM_STATUS_INIT_PROC)(HWND hWnd, SM_SERVER *p, void *param);
\r
142 typedef bool (SM_STATUS_REFRESH_PROC)(HWND hWnd, SM_SERVER *p, void *param);
\r
145 typedef struct SM_STATUS
\r
147 SM_SERVER *p; // P へのポインタ
\r
148 void *Param; // パラメータ
\r
150 wchar_t *Caption; // タイトル
\r
151 bool show_refresh_button; // 更新ボタンの表示
\r
152 bool NoImage; // イメージ無し
\r
153 SM_STATUS_INIT_PROC *InitProc;
\r
154 SM_STATUS_REFRESH_PROC *RefreshProc;
\r
158 typedef struct SM_EDIT_HUB
\r
161 bool EditMode; // 編集モード
\r
162 char HubName[MAX_HUBNAME_LEN + 1]; // HUB 名
\r
166 typedef struct SM_SSL
\r
171 bool SetCertAndKey; // キーをセットする
\r
175 typedef struct SM_SAVE_KEY_PAIR
\r
179 char *Pass; // パスフレーズ
\r
180 } SM_SAVE_KEY_PAIR;
\r
183 typedef struct SM_CONNECTION_INFO
\r
186 char *ConnectionName; // コネクション名
\r
187 } SM_CONNECTION_INFO;
\r
190 typedef struct SM_HUB
\r
194 char *HubName; // HUB 名
\r
198 typedef struct SM_USER
\r
202 SM_HUB *Hub; // HUB
\r
203 char *GroupName; // グループ名でフィルタ
\r
204 bool SelectMode; // 選択モード
\r
205 char *SelectedName; // 選択されたユーザー名
\r
206 bool AllowGroup; // グループの選択を許可
\r
207 bool CreateNow; // すぐにユーザーを作成
\r
211 typedef struct SM_EDIT_USER
\r
213 bool Inited; // 初期化済みフラグ
\r
214 bool EditMode; // 編集モード
\r
217 SM_HUB *Hub; // HUB
\r
218 RPC_SET_USER SetUser; // ユーザー設定
\r
222 typedef struct SM_USER_INFO
\r
226 SM_HUB *Hub; // HUB
\r
227 char *Username; // Username
\r
231 typedef struct SM_POLICY
\r
233 bool Inited; // 初期化
\r
234 POLICY *Policy; // ポリシー
\r
235 wchar_t *Caption; // タイトル
\r
236 bool CascadeMode; // カスケードモード
\r
241 typedef struct SM_GROUP
\r
245 SM_HUB *Hub; // HUB
\r
246 bool SelectMode; // 選択モード
\r
247 char *SelectedGroupName; // 選択されたグループ名
\r
251 typedef struct SM_EDIT_GROUP
\r
253 bool Inited; // 初期化フラグ
\r
254 bool EditMode; // 編集モード
\r
257 SM_HUB *Hub; // HUB
\r
258 RPC_SET_GROUP SetGroup; // グループ設定
\r
262 typedef struct SM_ACCESS_LIST
\r
265 SM_HUB *Hub; // HUB
\r
266 LIST *AccessList; // アクセスリスト
\r
270 typedef struct SM_EDIT_ACCESS
\r
272 SM_HUB *Hub; // HUB
\r
273 bool Inited; // 初期化フラグ
\r
274 bool EditMode; // 編集モード
\r
275 SM_ACCESS_LIST *AccessList; // アクセスリスト
\r
276 ACCESS *Access; // アクセスリスト項目
\r
280 typedef struct SM_LINK
\r
282 SM_HUB *Hub; // HUB
\r
283 wchar_t *AccountName; // アカウント名
\r
287 typedef struct SM_SESSION_STATUS
\r
289 SM_HUB *Hub; // HUB
\r
290 char *SessionName; // セッション名
\r
291 } SM_SESSION_STATUS;
\r
294 typedef struct SM_TABLE
\r
296 SM_HUB *Hub; // HUB
\r
298 char *SessionName; // セッション名
\r
302 typedef struct SM_CERT
\r
306 X *root_x; // ルート証明書
\r
307 K *root_k; // ルート証明書の秘密鍵
\r
308 bool do_not_save; // ファイルに保存しない
\r
309 char *default_cn; // デフォルトの CN
\r
313 typedef struct SM_CONFIG
\r
315 SM_SERVER *s; // SM_SERVER
\r
316 RPC_CONFIG Config; // Config 本体
\r
319 // hub_admin_option 編集
\r
320 typedef struct SM_EDIT_AO
\r
324 RPC_ADMIN_OPTION CurrentOptions;
\r
325 RPC_ADMIN_OPTION DefaultOptions;
\r
327 char Name[MAX_ADMIN_OPTION_NAME_LEN + 1];
\r
333 typedef struct SM_L3SW
\r
340 // スマートカードから証明書と秘密鍵の指定
\r
341 typedef struct SM_SECURE_KEYPAIR
\r
346 char CertName[MAX_SIZE];
\r
347 char KeyName[MAX_SIZE];
\r
350 } SM_SECURE_KEYPAIR;
\r
353 typedef struct SM_EDIT_CRL
\r
361 typedef struct SM_EDIT_AC_LIST
\r
368 typedef struct SM_EDIT_AC
\r
370 SM_EDIT_AC_LIST *e;
\r
375 typedef struct SM_READ_LOG_FILE
\r
384 } SM_READ_LOG_FILE;
\r
387 typedef struct SM_SETUP
\r
392 bool UseRemote; // リモートアクセス VPN
\r
393 bool UseSite; // 拠点間接続 VPN
\r
394 bool UseSiteEdge; // 各拠点に設置する VPN Server / Bridge
\r
395 char HubName[MAX_HUBNAME_LEN + 1]; // 仮想 HUB 名
\r
403 void SmParseCommandLine();
\r
407 UINT SmMainDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
408 void SmMainDlgInit(HWND hWnd);
\r
409 void SmMainDlgUpdate(HWND hWnd);
\r
410 void SmInitSettingList();
\r
411 void SmFreeSettingList();
\r
412 void SmWriteSettingList();
\r
413 void SmLoadSettingList();
\r
414 void SmInitDefaultSettingList();
\r
415 int SmCompareSetting(void *p1, void *p2);
\r
416 SETTING *SmGetSetting(wchar_t *title);
\r
417 bool SmAddSetting(SETTING *s);
\r
418 void SmDeleteSetting(wchar_t *title);
\r
419 bool SmCheckNewName(SETTING *s, wchar_t *new_title);
\r
420 void SmRefreshSetting(HWND hWnd);
\r
421 void SmRefreshSettingEx(HWND hWnd, wchar_t *select_name);
\r
422 bool SmAddSettingDlg(HWND hWnd, wchar_t *new_name, UINT new_name_size);
\r
423 bool SmEditSettingDlg(HWND hWnd);
\r
424 UINT SmEditSettingDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
425 void SmEditSettingDlgInit(HWND hWnd, SM_EDIT_SETTING *p);
\r
426 void SmEditSettingDlgUpdate(HWND hWnd, SM_EDIT_SETTING *p);
\r
427 void SmEditSettingDlgOnOk(HWND hWnd, SM_EDIT_SETTING *p);
\r
428 void SmConnect(HWND hWnd, SETTING *s);
\r
429 char *SmPassword(HWND hWnd, char *server_name);
\r
430 UINT SmServerDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
431 void SmServerDlgInit(HWND hWnd, SM_SERVER *p);
\r
432 void SmServerDlgUpdate(HWND hWnd, SM_SERVER *p);
\r
433 void SmServerDlgRefresh(HWND hWnd, SM_SERVER *p);
\r
434 void SmStatusDlg(HWND hWnd, SM_SERVER *p, void *param, bool no_image, bool show_refresh_button, wchar_t *caption, UINT icon,
\r
435 SM_STATUS_INIT_PROC *init, SM_STATUS_REFRESH_PROC *refresh);
\r
436 UINT SmStatusDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
437 bool SmRefreshHubStatus(HWND hWnd, SM_SERVER *p, void *param);
\r
438 void SmInsertTrafficInfo(LVB *b, TRAFFIC *t);
\r
439 bool SmCreateHubDlg(HWND hWnd, SM_SERVER *p);
\r
440 bool SmEditHubDlg(HWND hWnd, SM_SERVER *p, char *hubname);
\r
441 UINT SmEditHubProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
442 void SmEditHubInit(HWND hWnd, SM_EDIT_HUB *s);
\r
443 void SmEditHubUpdate(HWND hWnd, SM_EDIT_HUB *s);
\r
444 void SmEditHubOnOk(HWND hWnd, SM_EDIT_HUB *s);
\r
445 bool SmCreateListenerDlg(HWND hWnd, SM_SERVER *p);
\r
446 UINT SmCreateListenerDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
447 void SmSslDlg(HWND hWnd, SM_SERVER *p);
\r
448 UINT SmSslDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
449 void SmSslDlgInit(HWND hWnd, SM_SSL *s);
\r
450 void SmSslDlgOnOk(HWND hWnd, SM_SSL *s);
\r
451 void SmSslDlgUpdate(HWND hWnd, SM_SSL *s);
\r
452 void SmGetCertInfoStr(wchar_t *str, UINT size, X *x);
\r
453 bool SmSaveKeyPairDlg(HWND hWnd, X *x, K *k);
\r
454 UINT SmSaveKeyPairDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
455 void SmSaveKeyPairDlgInit(HWND hWnd, SM_SAVE_KEY_PAIR *s);
\r
456 void SmSaveKeyPairDlgUpdate(HWND hWnd, SM_SAVE_KEY_PAIR *s);
\r
457 void SmSaveKeyPairDlgOnOk(HWND hWnd, SM_SAVE_KEY_PAIR *s);
\r
458 bool SmRefreshServerStatus(HWND hWnd, SM_SERVER *p, void *param);
\r
459 bool SmRefreshServerInfo(HWND hWnd, SM_SERVER *p, void *param);
\r
460 void SmPrintNodeInfo(LVB *b, NODE_INFO *info);
\r
461 wchar_t *SmGetConnectionTypeStr(UINT type);
\r
462 void SmConnectionDlg(HWND hWnd, SM_SERVER *p);
\r
463 UINT SmConnectionDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
464 void SmConnectionDlgInit(HWND hWnd, SM_SERVER *p);
\r
465 void SmConnectionDlgRefresh(HWND hWnd, SM_SERVER *p);
\r
466 void SmConnectionDlgUpdate(HWND hWnd, SM_SERVER *p);
\r
467 bool SmRefreshConnectionStatus(HWND hWnd, SM_SERVER *p, void *param);
\r
468 bool SmFarmDlg(HWND hWnd, SM_SERVER *p);
\r
469 UINT SmFarmDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
470 void SmFarmDlgInit(HWND hWnd, SM_SERVER *p);
\r
471 void SmFarmDlgUpdate(HWND hWnd, SM_SERVER *p);
\r
472 void SmFarmDlgOnOk(HWND hWnd, SM_SERVER *p);
\r
473 LIST *SmStrToPortList(char *str);
\r
474 UINT SmFarmMemberDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
475 void SmFarmMemberDlgInit(HWND hWnd, SM_SERVER *p);
\r
476 void SmFarmMemberDlgUpdate(HWND hWnd, SM_SERVER *p);
\r
477 void SmFarmMemberDlgRefresh(HWND hWnd, SM_SERVER *p);
\r
478 void SmFarmMemberDlgOnOk(HWND hWnd, SM_SERVER *p);
\r
479 void SmFarmMemberCert(HWND hWnd, SM_SERVER *p, UINT id);
\r
480 bool SmRefreshFarmMemberInfo(HWND hWnd, SM_SERVER *p, void *param);
\r
481 bool SmRefreshFarmConnectionInfo(HWND hWnd, SM_SERVER *p, void *param);
\r
482 UINT SmChangeServerPasswordDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
483 void SmHubDlg(HWND hWnd, SM_HUB *s);
\r
484 UINT SmHubDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
485 void SmHubDlgInit(HWND hWnd, SM_HUB *s);
\r
486 void SmHubDlgUpdate(HWND hWnd, SM_HUB *s);
\r
487 void SmHubDlgRefresh(HWND hWnd, SM_HUB *s);
\r
488 void SmUserListDlg(HWND hWnd, SM_HUB *s);
\r
489 UINT SmUserListProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
490 void SmUserListInit(HWND hWnd, SM_USER *s);
\r
491 void SmUserListRefresh(HWND hWnd, SM_USER *s);
\r
492 void SmUserListUpdate(HWND hWnd, SM_USER *s);
\r
493 wchar_t *SmGetAuthTypeStr(UINT id);
\r
494 bool SmCreateUserDlg(HWND hWnd, SM_HUB *s);
\r
495 UINT SmEditUserDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
496 void SmEditUserDlgInit(HWND hWnd, SM_EDIT_USER *s);
\r
497 void SmEditUserDlgUpdate(HWND hWnd, SM_EDIT_USER *s);
\r
498 void SmEditUserDlgOk(HWND hWnd, SM_EDIT_USER *s);
\r
499 bool SmPolicyDlg(HWND hWnd, POLICY *p, wchar_t *caption);
\r
500 bool SmPolicyDlgEx(HWND hWnd, POLICY *p, wchar_t *caption, bool cascade_mode);
\r
501 bool SmPolicyDlgEx2(HWND hWnd, POLICY *p, wchar_t *caption, bool cascade_mode, UINT ver);
\r
502 UINT SmPolicyDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
503 void SmPolicyDlgInit(HWND hWnd, SM_POLICY *s);
\r
504 void SmPolicyDlgUpdate(HWND hWnd, SM_POLICY *s);
\r
505 void SmPolicyDlgOk(HWND hWnd, SM_POLICY *s);
\r
506 bool SmEditUserDlg(HWND hWnd, SM_HUB *s, char *username);
\r
507 bool SmRefreshUserInfo(HWND hWnd, SM_SERVER *s, void *param);
\r
508 void SmGroupListDlg(HWND hWnd, SM_HUB *s);
\r
509 char *SmSelectGroupDlg(HWND hWnd, SM_HUB *s, char *default_name);
\r
510 UINT SmGroupListDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
511 void SmGroupListDlgInit(HWND hWnd, SM_GROUP *s);
\r
512 void SmGroupListDlgUpdate(HWND hWnd, SM_GROUP *s);
\r
513 void SmGroupListDlgRefresh(HWND hWnd, SM_GROUP *s);
\r
514 bool SmCreateGroupDlg(HWND hWnd, SM_GROUP *s);
\r
515 bool SmEditGroupDlg(HWND hWnd, SM_GROUP *s, char *name);
\r
516 UINT SmEditGroupDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
517 void SmEditGroupDlgInit(HWND hWnd, SM_EDIT_GROUP *g);
\r
518 void SmEditGroupDlgUpdate(HWND hWnd, SM_EDIT_GROUP *g);
\r
519 void SmEditGroupDlgOnOk(HWND hWnd, SM_EDIT_GROUP *g);
\r
520 void SmUserListDlgEx(HWND hWnd, SM_HUB *s, char *groupname, bool create);
\r
521 void SmAccessListDlg(HWND hWnd, SM_HUB *s);
\r
522 UINT SmAccessListProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
523 void SmAccessListInit(HWND hWnd, SM_ACCESS_LIST *s);
\r
524 void SmAccessListUpdate(HWND hWnd, SM_ACCESS_LIST *s);
\r
525 void SmAccessListRefresh(HWND hWnd, SM_ACCESS_LIST *s);
\r
526 bool SmAddAccess(HWND hWnd, SM_ACCESS_LIST *s, bool ipv6);
\r
527 bool SmEditAccess(HWND hWnd, SM_ACCESS_LIST *s, ACCESS *a);
\r
528 UINT SmEditAccessDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
529 void SmEditAccessInit(HWND hWnd, SM_EDIT_ACCESS *s);
\r
530 void SmEditAccessUpdate(HWND hWnd, SM_EDIT_ACCESS *s);
\r
531 void SmEditAccessOnOk(HWND hWnd, SM_EDIT_ACCESS *s);
\r
532 UINT SmSimulationDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
533 void SmSimulationUpdate(HWND hWnd, SM_EDIT_ACCESS *s);
\r
534 void SmSimulationInit(HWND hWnd, SM_EDIT_ACCESS *s);
\r
535 void SmSimulationOnOk(HWND hWnd, SM_EDIT_ACCESS *s);
\r
536 char *SmSelectUserDlg(HWND hWnd, SM_HUB *s, char *default_name);
\r
537 char *SmSelectUserDlgEx(HWND hWnd, SM_HUB *s, char *default_name, bool allow_group);
\r
538 void SmRadiusDlg(HWND hWnd, SM_HUB *s);
\r
539 UINT SmRadiusDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
540 void SmRadiusDlgInit(HWND hWnd, SM_HUB *s);
\r
541 void SmRadiusDlgUpdate(HWND hWnd, SM_HUB *s);
\r
542 void SmRadiusDlgOnOk(HWND hWnd, SM_HUB *s);
\r
543 void SmLinkDlg(HWND hWnd, SM_HUB *s);
\r
544 void SmLinkDlgEx(HWND hWnd, SM_HUB *s, bool createNow);
\r
545 UINT SmLinkDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
546 void SmLinkDlgInit(HWND hWnd, SM_HUB *s);
\r
547 void SmLinkDlgUpdate(HWND hWnd, SM_HUB *s);
\r
548 void SmLinkDlgRefresh(HWND hWnd, SM_HUB *s);
\r
549 bool SmLinkCreate(HWND hWnd, SM_HUB *s);
\r
550 bool SmLinkCreateEx(HWND hWnd, SM_HUB *s, bool connectNow);
\r
551 bool SmLinkEdit(HWND hWnd, SM_HUB *s, wchar_t *name);
\r
552 bool SmRefreshLinkStatus(HWND hWnd, SM_SERVER *s, void *param);
\r
553 UINT SmLogDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
554 void SmLogDlgInit(HWND hWnd, SM_HUB *s);
\r
555 void SmLogDlgUpdate(HWND hWnd, SM_HUB *s);
\r
556 void SmLogDlgOnOk(HWND hWnd, SM_HUB *s);
\r
557 void SmCaDlg(HWND hWnd, SM_HUB *s);
\r
558 UINT SmCaDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
559 void SmCaDlgInit(HWND hWnd, SM_HUB *s);
\r
560 void SmCaDlgRefresh(HWND hWnd, SM_HUB *s);
\r
561 void SmCaDlgUpdate(HWND hWnd, SM_HUB *s);
\r
562 void SmCaDlgOnOk(HWND hWnd, SM_HUB *s);
\r
563 bool SmCaDlgAdd(HWND hWnd, SM_HUB *s);
\r
564 void SmSessionDlg(HWND hWnd, SM_HUB *s);
\r
565 UINT SmSessionDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
566 void SmSessionDlgInit(HWND hWnd, SM_HUB *s);
\r
567 void SmSessionDlgUpdate(HWND hWnd, SM_HUB *s);
\r
568 void SmSessionDlgRefresh(HWND hWnd, SM_HUB *s);
\r
569 bool SmRefreshSessionStatus(HWND hWnd, SM_SERVER *s, void *param);
\r
570 void SmMacTableDlg(HWND hWnd, SM_HUB *s, char *session_name);
\r
571 UINT SmMacTableDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
572 void SmMacTableDlgInit(HWND hWnd, SM_TABLE *s);
\r
573 void SmMacTableDlgUpdate(HWND hWnd, SM_TABLE *s);
\r
574 void SmMacTableDlgRefresh(HWND hWnd, SM_TABLE *s);
\r
575 void SmIpTableDlg(HWND hWnd, SM_HUB *s, char *session_name);
\r
576 UINT SmIpTableDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
577 void SmIpTableDlgInit(HWND hWnd, SM_TABLE *s);
\r
578 void SmIpTableDlgUpdate(HWND hWnd, SM_TABLE *s);
\r
579 void SmIpTableDlgRefresh(HWND hWnd, SM_TABLE *s);
\r
580 bool SmCreateCert(HWND hWnd, X **x, K **k, bool do_not_save, char *default_cn);
\r
581 UINT SmCreateCertDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
582 void SmCreateCertDlgInit(HWND hWnd, SM_CERT *s);
\r
583 void SmCreateCertDlgUpdate(HWND hWnd, SM_CERT *s);
\r
584 void SmCreateCertDlgOnOk(HWND hWnd, SM_CERT *s);
\r
585 UINT SmSNATDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
586 void SmSNATDlgUpdate(HWND hWnd, SM_HUB *s);
\r
587 void SmBridgeDlg(HWND hWnd, SM_SERVER *s);
\r
588 void SmInstallWinPcap(HWND hWnd, SM_SERVER *s);
\r
589 UINT SmBridgeDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
590 void SmBridgeDlgInit(HWND hWnd, SM_SERVER *s);
\r
591 void SmBridgeDlgUpdate(HWND hWnd, SM_SERVER *s);
\r
592 void SmBridgeDlgRefresh(HWND hWnd, SM_SERVER *s);
\r
593 void SmBridgeDlgOnOk(HWND hWnd, SM_SERVER *s);
\r
594 void SmAddServerCaps(LVB *b, CAPSLIST *t);
\r
595 void SmConfig(HWND hWnd, SM_SERVER *s);
\r
596 UINT SmConfigDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
597 void SmConfigDlgInit(HWND hWnd, SM_CONFIG *c);
\r
598 void SmHubAdminOption(HWND hWnd, SM_EDIT_HUB *e);
\r
599 void SmHubExtOption(HWND hWnd, SM_EDIT_HUB *e);
\r
600 UINT SmHubAdminOptionDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
601 void SmHubAdminOptionDlgUpdate(HWND hWnd, SM_EDIT_AO *a);
\r
602 void SmHubAdminOptionDlgInit(HWND hWnd, SM_EDIT_AO *a);
\r
603 void SmHubAdminOptionDlgOk(HWND hWnd, SM_EDIT_AO *a);
\r
604 UINT SmHubAdminOptionValueDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
605 void SmHubAdminOptionValueDlgUpdate(HWND hWnd, SM_EDIT_AO *a);
\r
606 void SmL3(HWND hWnd, SM_SERVER *s);
\r
607 UINT SmL3Dlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
608 void SmL3DlgInit(HWND hWnd, SM_SERVER *s);
\r
609 void SmL3DlgUpdate(HWND hWnd, SM_SERVER *s);
\r
610 void SmL3DlgRefresh(HWND hWnd, SM_SERVER *s);
\r
611 UINT SmL3AddDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
612 void SmL3AddDlgUpdate(HWND hWnd, SM_SERVER *s);
\r
613 UINT SmL3SwDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
614 void SmL3SwDlgInit(HWND hWnd, SM_L3SW *w);
\r
615 void SmL3SwDlgUpdate(HWND hWnd, SM_L3SW *w);
\r
616 void SmL3SwDlgRefresh(HWND hWnd, SM_L3SW *w);
\r
617 UINT SmL3SwIfDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
618 void SmL3SwIfDlgInit(HWND hWnd, SM_L3SW *w);
\r
619 void SmL3SwIfDlgUpdate(HWND hWnd, SM_L3SW *w);
\r
620 UINT SmL3SwTableDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
621 void SmL3SwTableDlgInit(HWND hWnd, SM_L3SW *w);
\r
622 void SmL3SwTableDlgUpdate(HWND hWnd, SM_L3SW *w);
\r
623 bool SmL3IsSwActive(SM_SERVER *s, char *name);
\r
624 UINT SmGetCurrentSecureId(HWND hWnd);
\r
625 UINT SmGetCurrentSecureIdFromReg();
\r
626 UINT SmSelectSecureId(HWND hWnd);
\r
627 void SmWriteSelectSecureIdReg(UINT id);
\r
628 bool SmSelectKeyPair(HWND hWnd, char *cert_name, UINT cert_name_size, char *key_name, UINT key_name_size);
\r
629 bool SmSelectKeyPairEx(HWND hWnd, char *cert_name, UINT cert_name_size, char *key_name, UINT key_name_size, UINT bitmap_id);
\r
630 UINT SmSelectKeyPairDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
631 void SmSelectKeyPairDlgInit(HWND hWnd, SM_SECURE_KEYPAIR *k);
\r
632 void SmSelectKeyPairDlgUpdate(HWND hWnd, SM_SECURE_KEYPAIR *k);
\r
633 void SmSelectKeyPairDlgRefresh(HWND hWnd, SM_SECURE_KEYPAIR *k);
\r
634 void SmSecureManager(HWND hWnd);
\r
635 UINT SmCrlDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
636 void SmCrlDlgInit(HWND hWnd, SM_HUB *s);
\r
637 void SmCrlDlgUpdate(HWND hWnd, SM_HUB *s);
\r
638 void SmCrlDlgRefresh(HWND hWnd, SM_HUB *s);
\r
639 UINT SmEditCrlDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
640 void SmEditCrlDlgInit(HWND hWnd, SM_EDIT_CRL *c);
\r
641 void SmEditCrlDlgUpdate(HWND hWnd, SM_EDIT_CRL *c);
\r
642 void SmEditCrlDlgOnOk(HWND hWnd, SM_EDIT_CRL *c);
\r
643 void SmEditCrlDlgOnLoad(HWND hWnd, SM_EDIT_CRL *c);
\r
644 void SmEditCrlDlgSetName(HWND hWnd, NAME *name);
\r
645 void SmEditCrlDlgSetSerial(HWND hWnd, X_SERIAL *serial);
\r
646 void SmEditCrlDlgSetHash(HWND hWnd, UCHAR *hash_md5, UCHAR *hash_sha1);
\r
647 void SmHubAc(HWND hWnd, SM_EDIT_HUB *s);
\r
648 UINT SmHubAcDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
649 void SmHubAcDlgInit(HWND hWnd, SM_EDIT_AC_LIST *p);
\r
650 void SmHubAcDlgUpdate(HWND hWnd, SM_EDIT_AC_LIST *p);
\r
651 void SmHubAcDlgRefresh(HWND hWnd, SM_EDIT_AC_LIST *p);
\r
652 UINT SmHubEditAcDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
653 void SmHubEditAcDlgInit(HWND hWnd, SM_EDIT_AC *p);
\r
654 void SmHubEditAcDlgUpdate(HWND hWnd, SM_EDIT_AC *p);
\r
655 void SmHubEditAcDlgOnOk(HWND hWnd, SM_EDIT_AC *p);
\r
656 UINT SmLogFileDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
657 void SmLogFileDlgInit(HWND hWnd, SM_SERVER *p);
\r
658 void SmLogFileDlgRefresh(HWND hWnd, SM_SERVER *p);
\r
659 void SmLogFileDlgUpdate(HWND hWnd, SM_SERVER *p);
\r
660 void SmLogFileStartDownload(HWND hWnd, SM_SERVER *s, char *server_name, char *filepath, UINT totalsize);
\r
661 UINT SmReadLogFile(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
662 bool SmReadLogFileProc(DOWNLOAD_PROGRESS *g);
\r
663 UINT SmSaveLogProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
664 void SmLicense(HWND hWnd, SM_SERVER *s);
\r
665 UINT SmLicenseDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
666 void SmLicenseDlgInit(HWND hWnd, SM_SERVER *s);
\r
667 void SmLicenseDlgRefresh(HWND hWnd, SM_SERVER *s);
\r
668 void SmLicenseDlgUpdate(HWND hWnd, SM_SERVER *s);
\r
669 bool SmLicenseAdd(HWND hWnd, SM_SERVER *s);
\r
670 UINT SmLicenseAddDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
671 void SmLicenseAddDlgInit(HWND hWnd, SM_SERVER *s);
\r
672 void SmLicenseAddDlgUpdate(HWND hWnd, SM_SERVER *s);
\r
673 void SmLicenseAddDlgShiftTextItem(HWND hWnd, UINT id1, UINT id2, UINT *next_focus);
\r
674 void SmLicenseAddDlgGetText(HWND hWnd, char *str, UINT size);
\r
675 void SmLicenseAddDlgOnOk(HWND hWnd, SM_SERVER *s);
\r
676 bool SmSetup(HWND hWnd, SM_SERVER *s);
\r
677 UINT SmSetupDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
678 void SmSetupDlgInit(HWND hWnd, SM_SETUP *s);
\r
679 void SmSetupDlgUpdate(HWND hWnd, SM_SETUP *s);
\r
680 void SmSetupDlgOnOk(HWND hWnd, SM_SETUP *s);
\r
681 UINT SmSetupHubDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
682 void SmSetupHubDlgUpdate(HWND hWnd, SM_SETUP *s);
\r
683 bool SmSetupInit(HWND hWnd, SM_SETUP *s);
\r
684 bool SmSetupDeleteAllHub(HWND hWnd, SM_SETUP *s);
\r
685 bool SmSetupDeleteAllLocalBridge(HWND hWnd, SM_SETUP *s);
\r
686 bool SmSetupDeleteAllLayer3(HWND hWnd, SM_SETUP *s);
\r
687 bool SmSetupDeleteAllObjectInBridgeHub(HWND hWnd, SM_SETUP *s);
\r
688 void SmSetupStep(HWND hWnd, SM_SETUP *s);
\r
689 UINT SmSetupStepDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
690 void SmSetupStepDlgInit(HWND hWnd, SM_SETUP *s);
\r
691 void SmSetupOnClose(HWND hWnd, SM_SETUP *s);
\r
692 bool SmSetupIsNew(SM_SERVER *s);
\r
693 void SmVLan(HWND hWnd, SM_SERVER *s);
\r
694 UINT SmVLanDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
695 void SmVLanDlgInit(HWND hWnd, SM_SERVER *s);
\r
696 void SmVLanDlgRefresh(HWND hWnd, SM_SERVER *s);
\r
697 void SmVLanDlgUpdate(HWND hWnd, SM_SERVER *s);
\r
698 void SmHubMsg(HWND hWnd, SM_EDIT_HUB *s);
\r
699 UINT SmHubMsgDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
\r
700 void SmHubMsgDlgInit(HWND hWnd, SM_EDIT_HUB *s);
\r
701 void SmHubMsgDlgUpdate(HWND hWnd, SM_EDIT_HUB *s);
\r
702 void SmHubMsgDlgOnOk(HWND hWnd, SM_EDIT_HUB *s);
\r