From 01b008aaedfcfe3a2e4eede10a6c39c2bfc99c8c Mon Sep 17 00:00:00 2001 From: henrypp Date: Wed, 11 Oct 2023 18:42:08 +0600 Subject: [PATCH] code cosmetics --- src/controls.c | 77 +++--- src/db.c | 14 +- src/editor.c | 2 +- src/helper.c | 4 +- src/listview.c | 68 ++--- src/listview.h | 2 - src/log.c | 7 +- src/messages.c | 661 ++++++++++++++++++++++---------------------- src/network.c | 2 +- src/notifications.c | 2 +- src/profile.c | 6 +- src/timer.c | 8 +- src/wfp.c | 53 ++-- 13 files changed, 443 insertions(+), 463 deletions(-) diff --git a/src/controls.c b/src/controls.c index 5e29dd3e..1a03fb4f 100644 --- a/src/controls.c +++ b/src/controls.c @@ -276,16 +276,28 @@ PR_STRING _app_gettooltipbylparam ( _r_obj_initializestringbuilder (&sb, 512); - if ((listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP) || listview_id == IDC_RULE_APPS_ID) + switch (listview_id) { - _app_getapptooltipstring (&sb, lparam, NULL, NULL); - } - else if ((listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM) || listview_id == IDC_APP_RULES_ID) - { - ptr_rule = _app_getrulebyid (lparam); - - if (ptr_rule) + case IDC_APPS_PROFILE: + case IDC_APPS_SERVICE: + case IDC_APPS_UWP: + case IDC_RULE_APPS_ID: { + _app_getapptooltipstring (&sb, lparam, NULL, NULL); + + break; + } + + case IDC_RULES_BLOCKLIST: + case IDC_RULES_SYSTEM: + case IDC_RULES_CUSTOM: + case IDC_APP_RULES_ID: + { + ptr_rule = _app_getrulebyid (lparam); + + if (!ptr_rule) + break; + string1 = _app_rulesexpandrules (ptr_rule->rule_remote, SZ_CRLF SZ_TAB); string2 = _app_rulesexpandrules (ptr_rule->rule_local, SZ_CRLF SZ_TAB); @@ -310,7 +322,7 @@ PR_STRING _app_gettooltipbylparam ( _r_obj_dereference (string2); // rule apps - if (ptr_rule->is_forservices || !_r_obj_ishashtableempty (ptr_rule->apps)) + if (ptr_rule->is_forservices || !_r_obj_isempty (ptr_rule->apps)) { string1 = _app_rulesexpandapps (ptr_rule, TRUE, SZ_TAB_CRLF); @@ -348,28 +360,36 @@ PR_STRING _app_gettooltipbylparam ( } _r_obj_dereference (ptr_rule); - } - } - else if (listview_id == IDC_NETWORK) - { - ptr_network = _app_network_getitem (lparam); - if (ptr_network) + break; + } + + case IDC_NETWORK: { + ptr_network = _app_network_getitem (lparam); + + if (!ptr_network) + break; + _app_getapptooltipstring (&sb, ptr_network->app_hash, ptr_network, NULL); _r_obj_dereference (ptr_network); - } - } - else if (listview_id == IDC_LOG) - { - ptr_log = _app_getlogitem (lparam); - if (ptr_log) + break; + } + + case IDC_LOG: { + ptr_log = _app_getlogitem (lparam); + + if (!ptr_log) + break; + _app_getapptooltipstring (&sb, ptr_log->app_hash, NULL, ptr_log); _r_obj_dereference (ptr_log); + + break; } } @@ -467,12 +487,9 @@ HBITMAP _app_getstatebitmap ( { return config.hbmp_enable; } - - default: - { - return NULL; - } } + + return NULL; } INT _app_getstateicon ( @@ -486,13 +503,9 @@ INT _app_getstateicon ( { return IDI_ACTIVE; } - - //case INSTALL_DISABLED: - default: - { - return IDI_INACTIVE; - } } + + return IDI_INACTIVE; } LPCWSTR _app_getstatelocale ( diff --git a/src/db.c b/src/db.c index a06d3df7..79bbaff5 100644 --- a/src/db.c +++ b/src/db.c @@ -162,7 +162,7 @@ NTSTATUS _app_db_ishashvalid ( } else { - status = STATUS_HASH_NOT_PRESENT; + status = STATUS_INVALID_IMAGE_HASH; } _r_obj_dereference (new_hash_bytes); @@ -306,7 +306,7 @@ VOID _app_db_parse_rule ( PR_STRING rule_local; PR_STRING path_string; PR_STRING string; - PITEM_RULE_CONFIG ptr_config; + PITEM_RULE_CONFIG ptr_config = NULL; LONG blocklist_spy_state; LONG blocklist_update_state; LONG blocklist_extra_state; @@ -382,8 +382,6 @@ VOID _app_db_parse_rule ( } // load rules config - ptr_config = NULL; - is_internal = (type == DATA_RULE_BLOCKLIST || type == DATA_RULE_SYSTEM || type == DATA_RULE_SYSTEM_USER); if (is_internal) @@ -462,7 +460,7 @@ VOID _app_db_parse_rule ( // Check if no app is added into rule, then disable it! if (ptr_rule->is_enabled) { - if (_r_obj_ishashtableempty (ptr_rule->apps)) + if (_r_obj_isempty (ptr_rule->apps)) ptr_rule->is_enabled = FALSE; } } @@ -954,6 +952,7 @@ FORCEINLINE VOID _app_db_writeelementstart ( ) { _r_xml_writewhitespace (&db_info->xml_library, L"\n\t"); + _r_xml_writestartelement (&db_info->xml_library, name); } @@ -962,6 +961,7 @@ FORCEINLINE VOID _app_db_writeelementend ( ) { _r_xml_writewhitespace (&db_info->xml_library, L"\n\t"); + _r_xml_writeendelement (&db_info->xml_library); } @@ -1068,7 +1068,7 @@ VOID _app_db_save_rule ( _r_xml_setattribute_long (&db_info->xml_library, L"version", ptr_rule->af); // add apps attribute - if (!_r_obj_ishashtableempty (ptr_rule->apps)) + if (!_r_obj_isempty (ptr_rule->apps)) { apps_string = _app_rulesexpandapps (ptr_rule, FALSE, DIVIDER_APP); @@ -1125,7 +1125,7 @@ VOID _app_db_save_ruleconfig ( { is_enabled_default = !!ptr_rule->is_enabled_default; - if (ptr_rule->type == DATA_RULE_USER && !_r_obj_ishashtableempty (ptr_rule->apps)) + if (ptr_rule->type == DATA_RULE_USER && !_r_obj_isempty (ptr_rule->apps)) apps_string = _app_rulesexpandapps (ptr_rule, FALSE, DIVIDER_APP); _r_obj_dereference (ptr_rule); diff --git a/src/editor.c b/src/editor.c index bf3b1be6..84e603fa 100644 --- a/src/editor.c +++ b/src/editor.c @@ -1915,7 +1915,7 @@ INT_PTR CALLBACK EditorProc ( // apply filter if (rules) { - if (!_r_obj_islistempty2 (rules) && _wfp_isfiltersinstalled ()) + if (!_r_obj_isempty2 (rules) && _wfp_isfiltersinstalled ()) { hengine = _wfp_getenginehandle (); diff --git a/src/helper.c b/src/helper.c index e9bb99e6..5d528f4b 100644 --- a/src/helper.c +++ b/src/helper.c @@ -1111,7 +1111,7 @@ VOID _app_generate_rulescontrol ( if (!ptr_rule) continue; - is_global = (ptr_rule->is_enabled && _r_obj_ishashtableempty (ptr_rule->apps)); + is_global = (ptr_rule->is_enabled && _r_obj_isempty (ptr_rule->apps)); is_enabled = is_global || (ptr_rule->is_enabled && (_r_obj_findhashtable (ptr_rule->apps, app_hash))); if (ptr_rule->type != DATA_RULE_USER) @@ -1223,7 +1223,7 @@ BOOLEAN _app_setruletoapp ( { _r_obj_removehashtableitem (ptr_rule->apps, ptr_app->app_hash); - if (_r_obj_ishashtableempty (ptr_rule->apps)) + if (_r_obj_isempty (ptr_rule->apps)) _app_ruleenable (ptr_rule, FALSE, TRUE); } diff --git a/src/listview.c b/src/listview.c index e1956d52..a1c1d733 100644 --- a/src/listview.c +++ b/src/listview.c @@ -132,20 +132,20 @@ VOID _app_listview_addappitem ( listview_id = _app_listview_getbytype (ptr_app->type); - if (listview_id) - { - item_id = _r_listview_getitemcount (hwnd, listview_id); + if (!listview_id) + return; - _app_listview_lock (hwnd, listview_id, TRUE); + item_id = _r_listview_getitemcount (hwnd, listview_id); - listview_context = _app_listview_createcontext (ptr_app->app_hash); + _app_listview_lock (hwnd, listview_id, TRUE); - _r_listview_additem_ex (hwnd, listview_id, item_id, LPSTR_TEXTCALLBACK, I_IMAGECALLBACK, I_GROUPIDCALLBACK, listview_context); + listview_context = _app_listview_createcontext (ptr_app->app_hash); - _app_setappiteminfo (hwnd, listview_id, item_id, ptr_app); + _r_listview_additem_ex (hwnd, listview_id, item_id, LPSTR_TEXTCALLBACK, I_IMAGECALLBACK, I_GROUPIDCALLBACK, listview_context); - _app_listview_lock (hwnd, listview_id, FALSE); - } + _app_setappiteminfo (hwnd, listview_id, item_id, ptr_app); + + _app_listview_lock (hwnd, listview_id, FALSE); } VOID _app_listview_addruleitem ( @@ -179,15 +179,12 @@ VOID _app_listview_addruleitem ( VOID _app_listview_addnetworkitem ( _In_ HWND hwnd, - _In_ PITEM_NETWORK ptr_network, _In_ ULONG_PTR network_hash ) { LPARAM listview_context; INT item_id; - UNREFERENCED_PARAMETER (ptr_network); - item_id = _r_listview_getitemcount (hwnd, IDC_NETWORK); listview_context = _app_listview_createcontext (network_hash); @@ -197,15 +194,12 @@ VOID _app_listview_addnetworkitem ( VOID _app_listview_addlogitem ( _In_ HWND hwnd, - _In_opt_ PITEM_LOG ptr_log, _In_ ULONG_PTR log_hash ) { LPARAM listview_context; INT item_id; - UNREFERENCED_PARAMETER (ptr_log); - item_id = _r_listview_getitemcount (hwnd, IDC_LOG); listview_context = _app_listview_createcontext (log_hash); @@ -398,11 +392,9 @@ VOID _app_listview_showitemby_param ( _In_ BOOLEAN is_app ) { - INT listview_id; + INT listview_id = 0; INT item_id; - listview_id = 0; - if (is_app) { _app_getappinfobyhash (lparam, INFO_LISTVIEW_ID, &listview_id, sizeof (listview_id)); @@ -418,6 +410,7 @@ VOID _app_listview_showitemby_param ( if (listview_id != _app_listview_getcurrent (hwnd)) { _app_listview_sort (hwnd, listview_id); + _app_listview_resize (hwnd, listview_id); } @@ -426,6 +419,7 @@ VOID _app_listview_showitemby_param ( if (item_id != -1) { _app_listview_showitemby_id (hwnd, listview_id, item_id, -1); + _r_wnd_toggle (hwnd, TRUE); } } @@ -607,11 +601,11 @@ VOID _app_listview_refreshgroups ( UINT group4_title; UINT group5_title; INT total_count; - INT group1_count; - INT group2_count; - INT group3_count; - INT group4_count; - INT group5_count; + INT group1_count = 0; + INT group2_count = 0; + INT group3_count = 0; + INT group4_count = 0; + INT group5_count = 0; INT group_id; BOOLEAN is_rules; @@ -657,12 +651,6 @@ VOID _app_listview_refreshgroups ( return; } - group1_count = 0; - group2_count = 0; - group3_count = 0; - group4_count = 0; - group5_count = 0; - total_count = _r_listview_getitemcount (hwnd, listview_id); for (INT i = 0; i < total_count; i++) @@ -767,16 +755,16 @@ VOID _app_listview_resize_ex ( PR_STRING column_text; PR_STRING item_text; HWND hlistview; - HWND hheader; - HDC hdc_listview; - HDC hdc_header; + HWND hheader = NULL; + HDC hdc_listview = NULL; + HDC hdc_header = NULL; LONG dpi_value; INT column_count; INT item_count; INT column_width; INT text_width; - INT calculated_width; - INT column_general_id; + INT calculated_width = 0; + INT column_general_id = 0; // set general column id INT total_width; INT max_width; INT spacing; @@ -785,10 +773,6 @@ VOID _app_listview_resize_ex ( if (!is_forced && !_r_config_getboolean (L"AutoSizeColumns", TRUE)) return; - hheader = NULL; - hdc_listview = NULL; - hdc_header = NULL; - hlistview = GetDlgItem (hwnd, listview_id); if (!hlistview) @@ -815,9 +799,6 @@ VOID _app_listview_resize_ex ( _r_dc_fixfont (hdc_listview, hlistview, 0); // fix _r_dc_fixfont (hdc_header, hheader, 0); // fix - calculated_width = 0; - column_general_id = 0; // set general column id - is_tableview = (_r_listview_getview (hwnd, listview_id) == LV_VIEW_DETAILS); dpi_value = _r_dc_getwindowdpi (hwnd); @@ -865,6 +846,7 @@ VOID _app_listview_resize_ex ( if (text_width >= max_width) { column_width = max_width; + break; } @@ -974,7 +956,7 @@ INT CALLBACK _app_listview_compare_callback ( ULONG_PTR context2; LONG column_id; INT listview_id; - INT result; + INT result = 0; INT item_id1; INT item_id2; PR_STRING item_text_1; @@ -1007,8 +989,6 @@ INT CALLBACK _app_listview_compare_callback ( column_id = _r_config_getlong_ex (L"SortColumn", 0, config_name); is_descend = _r_config_getboolean_ex (L"SortIsDescending", FALSE, config_name); - result = 0; - if ((_r_listview_getstyle_ex (hwnd, listview_id) & LVS_EX_CHECKBOXES) != 0) { is_checked1 = _r_listview_isitemchecked (hwnd, listview_id, item_id1); diff --git a/src/listview.h b/src/listview.h index 4fb2e5e0..d6d7a918 100644 --- a/src/listview.h +++ b/src/listview.h @@ -61,13 +61,11 @@ VOID _app_listview_addruleitem ( VOID _app_listview_addnetworkitem ( _In_ HWND hwnd, - _In_ PITEM_NETWORK ptr_network, _In_ ULONG_PTR network_hash ); VOID _app_listview_addlogitem ( _In_ HWND hwnd, - _In_opt_ PITEM_LOG ptr_log, _In_ ULONG_PTR log_hash ); diff --git a/src/log.c b/src/log.c index 23e7d5de..6ace69a5 100644 --- a/src/log.c +++ b/src/log.c @@ -304,7 +304,7 @@ VOID _app_logwrite_ui ( _r_obj_addhashtablepointer (log_table, log_hash, _r_obj_reference (ptr_log)); _r_queuedlock_releaseexclusive (&lock_loglist); - _app_listview_addlogitem (hwnd, ptr_log, log_hash); + _app_listview_addlogitem (hwnd, log_hash); _app_queue_resolver (hwnd, IDC_LOG, log_hash, ptr_log); @@ -1143,7 +1143,7 @@ FORCEINLINE BOOLEAN log_struct_to_f ( return TRUE; } -// win8+ callback +// win81+ callback VOID CALLBACK _wfp_logcallback1 ( _In_opt_ PVOID context, _In_ const FWPM_NET_EVENT2* event_data @@ -1248,8 +1248,7 @@ VOID NTAPI _app_logthread ( is_exludeallow = !(ptr_log->is_allow && _r_config_getboolean (L"IsExcludeClassifyAllow", TRUE)); is_exludestealth = !(ptr_log->is_system && _r_config_getboolean (L"IsExcludeStealth", TRUE)); - is_exludeblocklist = !(ptr_log->is_blocklist && _r_config_getboolean (L"IsExcludeBlocklist", TRUE)) && - !(ptr_log->is_custom && _r_config_getboolean (L"IsExcludeCustomRules", TRUE)); + is_exludeblocklist = !(ptr_log->is_blocklist && _r_config_getboolean (L"IsExcludeBlocklist", TRUE)) && !(ptr_log->is_custom && _r_config_getboolean (L"IsExcludeCustomRules", TRUE)); if ((is_logenabled || is_loguienabled || is_notificationenabled) && is_exludestealth && is_exludeallow) { diff --git a/src/messages.c b/src/messages.c index 4930a616..4f2e25f8 100644 --- a/src/messages.c +++ b/src/messages.c @@ -158,8 +158,6 @@ VOID _app_message_localize ( if (hmenu) { - recommended_string = _r_locale_getstring (IDS_RECOMMENDED); - _r_menu_setitemtext (hmenu, 0, TRUE, _r_locale_getstring (IDS_FILE)); _r_menu_setitemtext (hmenu, 1, TRUE, _r_locale_getstring (IDS_EDIT)); _r_menu_setitemtext (hmenu, 2, TRUE, _r_locale_getstring (IDS_VIEW)); @@ -304,6 +302,8 @@ VOID _app_message_localize ( _r_menu_setitemtext (hsubmenu, 6, TRUE, _r_locale_getstring (IDS_PROFILE_TYPE)); } + recommended_string = _r_locale_getstring (IDS_RECOMMENDED); + // blocklist submenu _r_menu_setitemtext (hmenu, IDM_BLOCKLIST_SPY_DISABLE, FALSE, _r_locale_getstring (IDS_DISABLE)); _r_menu_setitemtext (hmenu, IDM_BLOCKLIST_SPY_ALLOW, FALSE, _r_locale_getstring (IDS_ACTION_ALLOW)); @@ -476,119 +476,144 @@ VOID _app_message_localize ( { listview_id = _app_listview_getbytab (hwnd, i); - if (listview_id == IDC_APPS_PROFILE) + switch (listview_id) { - locale_id = IDS_TAB_APPS; - } - else if (listview_id == IDC_APPS_SERVICE) - { - locale_id = IDS_TAB_SERVICES; - } - else if (listview_id == IDC_APPS_UWP) - { - locale_id = IDS_TAB_PACKAGES; - } - else if (listview_id == IDC_RULES_BLOCKLIST) - { - locale_id = IDS_TRAY_BLOCKLIST_RULES; - } - else if (listview_id == IDC_RULES_SYSTEM) - { - locale_id = IDS_TRAY_SYSTEM_RULES; - } - else if (listview_id == IDC_RULES_CUSTOM) - { - locale_id = IDS_TRAY_USER_RULES; - } - else if (listview_id == IDC_NETWORK) - { - locale_id = IDS_TAB_NETWORK; - } - else if (listview_id == IDC_LOG) - { - locale_id = IDS_TITLE_LOGGING; - } - else - { - continue; + case IDC_APPS_PROFILE: + { + locale_id = IDS_TAB_APPS; + break; + } + + case IDC_APPS_SERVICE: + { + locale_id = IDS_TAB_SERVICES; + break; + } + + case IDC_APPS_UWP: + { + locale_id = IDS_TAB_PACKAGES; + break; + } + + case IDC_RULES_BLOCKLIST: + { + locale_id = IDS_TRAY_BLOCKLIST_RULES; + break; + } + + case IDC_RULES_SYSTEM: + { + locale_id = IDS_TRAY_SYSTEM_RULES; + break; + } + + case IDC_RULES_CUSTOM: + { + locale_id = IDS_TRAY_USER_RULES; + break; + } + + case IDC_NETWORK: + { + locale_id = IDS_TAB_NETWORK; + break; + } + + case IDC_LOG: + { + locale_id = IDS_TITLE_LOGGING; + break; + } + + default: + { + continue; + } } _r_tab_setitem (hwnd, IDC_TAB, i, _r_locale_getstring (locale_id), I_IMAGENONE, 0); - if (listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP) + switch (listview_id) { - _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); - _r_listview_setcolumn (hwnd, listview_id, 1, _r_locale_getstring (IDS_ADDED), 0); - } - else if (listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM) - { - _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); - _r_listview_setcolumn (hwnd, listview_id, 1, _r_locale_getstring (IDS_PROTOCOL), 0); - _r_listview_setcolumn (hwnd, listview_id, 2, _r_locale_getstring (IDS_DIRECTION), 0); - } - else if (listview_id == IDC_NETWORK) - { - _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); + case IDC_APPS_PROFILE: + case IDC_APPS_SERVICE: + case IDC_APPS_UWP: + { + _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); + _r_listview_setcolumn (hwnd, listview_id, 1, _r_locale_getstring (IDS_ADDED), 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_ADDRESS))); + break; + } - _r_listview_setcolumn (hwnd, listview_id, 1, localized_string->buffer, 0); + case IDC_RULES_BLOCKLIST: + case IDC_RULES_SYSTEM: + case IDC_RULES_CUSTOM: + { + _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); + _r_listview_setcolumn (hwnd, listview_id, 1, _r_locale_getstring (IDS_PROTOCOL), 0); + _r_listview_setcolumn (hwnd, listview_id, 2, _r_locale_getstring (IDS_DIRECTION), 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_HOST))); + break; + } - _r_listview_setcolumn (hwnd, listview_id, 2, localized_string->buffer, 0); + case IDC_NETWORK: + { + _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_PORT))); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_ADDRESS))); + _r_listview_setcolumn (hwnd, listview_id, 1, localized_string->buffer, 0); - _r_listview_setcolumn (hwnd, listview_id, 3, localized_string->buffer, 0); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_HOST))); + _r_listview_setcolumn (hwnd, listview_id, 2, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_ADDRESS))); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_PORT))); + _r_listview_setcolumn (hwnd, listview_id, 3, localized_string->buffer, 0); - _r_listview_setcolumn (hwnd, listview_id, 4, localized_string->buffer, 0); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_ADDRESS))); + _r_listview_setcolumn (hwnd, listview_id, 4, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_HOST))); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_HOST))); + _r_listview_setcolumn (hwnd, listview_id, 5, localized_string->buffer, 0); - _r_listview_setcolumn (hwnd, listview_id, 5, localized_string->buffer, 0); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_PORT))); + _r_listview_setcolumn (hwnd, listview_id, 6, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_PORT))); + _r_listview_setcolumn (hwnd, listview_id, 7, _r_locale_getstring (IDS_PROTOCOL), 0); + _r_listview_setcolumn (hwnd, listview_id, 8, _r_locale_getstring (IDS_STATE), 0); - _r_listview_setcolumn (hwnd, listview_id, 6, localized_string->buffer, 0); + break; + } - _r_listview_setcolumn (hwnd, listview_id, 7, _r_locale_getstring (IDS_PROTOCOL), 0); - _r_listview_setcolumn (hwnd, listview_id, 8, _r_locale_getstring (IDS_STATE), 0); - } - else if (listview_id == IDC_LOG) - { - _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); - _r_listview_setcolumn (hwnd, listview_id, 1, _r_locale_getstring (IDS_DATE), 0); + case IDC_LOG: + { + _r_listview_setcolumn (hwnd, listview_id, 0, _r_locale_getstring (IDS_NAME), 0); + _r_listview_setcolumn (hwnd, listview_id, 1, _r_locale_getstring (IDS_DATE), 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_ADDRESS))); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_ADDRESS))); + _r_listview_setcolumn (hwnd, listview_id, 2, localized_string->buffer, 0); - _r_listview_setcolumn (hwnd, listview_id, 2, localized_string->buffer, 0); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_HOST))); + _r_listview_setcolumn (hwnd, listview_id, 3, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_HOST))); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_PORT))); + _r_listview_setcolumn (hwnd, listview_id, 4, localized_string->buffer, 0); - _r_listview_setcolumn (hwnd, listview_id, 3, localized_string->buffer, 0); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_ADDRESS))); + _r_listview_setcolumn (hwnd, listview_id, 5, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_LOCAL L")", _r_locale_getstring (IDS_PORT))); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_HOST))); + _r_listview_setcolumn (hwnd, listview_id, 6, localized_string->buffer, 0); - _r_listview_setcolumn (hwnd, listview_id, 4, localized_string->buffer, 0); + _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_PORT))); + _r_listview_setcolumn (hwnd, listview_id, 7, localized_string->buffer, 0); - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_ADDRESS))); + _r_listview_setcolumn (hwnd, listview_id, 8, _r_locale_getstring (IDS_PROTOCOL), 0); + _r_listview_setcolumn (hwnd, listview_id, 9, _r_locale_getstring (IDS_DIRECTION), 0); + _r_listview_setcolumn (hwnd, listview_id, 10, _r_locale_getstring (IDS_FILTER), 0); - _r_listview_setcolumn (hwnd, listview_id, 5, localized_string->buffer, 0); - - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_HOST))); - - _r_listview_setcolumn (hwnd, listview_id, 6, localized_string->buffer, 0); - - _r_obj_movereference (&localized_string, _r_format_string (L"%s (" SZ_DIRECTION_REMOTE L")", _r_locale_getstring (IDS_PORT))); - - _r_listview_setcolumn (hwnd, listview_id, 7, localized_string->buffer, 0); - - _r_listview_setcolumn (hwnd, listview_id, 8, _r_locale_getstring (IDS_PROTOCOL), 0); - _r_listview_setcolumn (hwnd, listview_id, 9, _r_locale_getstring (IDS_DIRECTION), 0); - _r_listview_setcolumn (hwnd, listview_id, 10, _r_locale_getstring (IDS_FILTER), 0); + break; + } } } @@ -611,21 +636,18 @@ VOID _app_message_contextmenu ( ) { HMENU hmenu; - HMENU hsubmenu_rules; - HMENU hsubmenu_timers; - PITEM_APP ptr_app; + HMENU hsubmenu_rules = NULL; + HMENU hsubmenu_timers = NULL; + PITEM_APP ptr_app = NULL; PITEM_NETWORK ptr_network; - PR_STRING localized_string; - PR_STRING column_text; + PR_STRING localized_string = NULL; + PR_STRING column_text = NULL; ULONG_PTR hash_code; INT listview_id; INT lv_column_current; INT command_id; - BOOLEAN is_checked; - BOOLEAN is_readonly; - - is_checked = FALSE; - is_readonly = FALSE; + BOOLEAN is_checked = FALSE; + BOOLEAN is_readonly = FALSE; if (lpnmlv->iItem == -1) return; @@ -640,243 +662,234 @@ VOID _app_message_contextmenu ( if (!hmenu) return; - ptr_app = NULL; - - hsubmenu_rules = NULL; - hsubmenu_timers = NULL; - - localized_string = NULL; - column_text = NULL; - hash_code = _app_listview_getitemcontext (hwnd, listview_id, lpnmlv->iItem); lv_column_current = lpnmlv->iSubItem; - if (listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP) + switch (listview_id) { - hsubmenu_rules = CreatePopupMenu (); - hsubmenu_timers = CreatePopupMenu (); - - ptr_app = _app_getappitem (hash_code); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...\tEnter")); - - _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); - - _r_menu_additem (hmenu, 0, NULL); - - // show rules - if (hsubmenu_rules) + case IDC_APPS_PROFILE: + case IDC_APPS_SERVICE: + case IDC_APPS_UWP: { - _r_menu_addsubmenu (hmenu, -1, hsubmenu_rules, _r_locale_getstring (IDS_TRAY_RULES)); + hsubmenu_rules = CreatePopupMenu (); + hsubmenu_timers = CreatePopupMenu (); - _r_menu_additem (hsubmenu_rules, IDM_DISABLENOTIFICATIONS, _r_locale_getstring (IDS_DISABLENOTIFICATIONS)); + ptr_app = _app_getappitem (hash_code); - _r_menu_additem (hsubmenu_rules, 0, NULL); + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...\tEnter")); - _app_generate_rulescontrol (hsubmenu_rules, hash_code, NULL); - } + _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); - // show timers - if (hsubmenu_timers) - { - _r_menu_addsubmenu (hmenu, -1, hsubmenu_timers, _r_locale_getstring (IDS_TIMER)); + _r_menu_additem (hmenu, 0, NULL); - _r_menu_additem (hsubmenu_timers, IDM_DISABLETIMER, _r_locale_getstring (IDS_DISABLETIMER)); - _r_menu_additem (hsubmenu_timers, 0, NULL); - - _app_generate_timerscontrol (hsubmenu_timers, hash_code); - } - - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); - - _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_DELETE), L"\tDel")); - - _r_menu_additem (hmenu, IDM_DELETE, localized_string->buffer); - - _r_menu_additem (hmenu, 0, NULL); - _r_menu_additem (hmenu, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); - _r_menu_additem (hmenu, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); - - _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); - - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); - - _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); - - column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); - - if (column_text) - { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); - - _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); - - _r_obj_dereference (column_text); - } - - if (ptr_app) - { - if (_app_getappinfo (ptr_app, INFO_IS_SILENT, &is_checked, sizeof (is_checked))) + // show rules + if (hsubmenu_rules) { - if (is_checked) - _r_menu_checkitem (hmenu, IDM_DISABLENOTIFICATIONS, 0, MF_BYCOMMAND, is_checked); + _r_menu_addsubmenu (hmenu, -1, hsubmenu_rules, _r_locale_getstring (IDS_TRAY_RULES)); + + _r_menu_additem (hsubmenu_rules, IDM_DISABLENOTIFICATIONS, _r_locale_getstring (IDS_DISABLENOTIFICATIONS)); + + _r_menu_additem (hsubmenu_rules, 0, NULL); + + _app_generate_rulescontrol (hsubmenu_rules, hash_code, NULL); } - } - if (listview_id != IDC_APPS_PROFILE) - _r_menu_enableitem (hmenu, IDM_DELETE, MF_BYCOMMAND, FALSE); - } - else if (listview_id >= IDC_RULES_BLOCKLIST && listview_id <= IDC_RULES_CUSTOM) - { - if (listview_id == IDC_RULES_CUSTOM) - { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_ADD), L"...")); + // show timers + if (hsubmenu_timers) + { + _r_menu_addsubmenu (hmenu, -1, hsubmenu_timers, _r_locale_getstring (IDS_TIMER)); - _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); - } + _r_menu_additem (hsubmenu_timers, IDM_DISABLETIMER, _r_locale_getstring (IDS_DISABLETIMER)); + _r_menu_additem (hsubmenu_timers, 0, NULL); - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...\tEnter")); + _app_generate_timerscontrol (hsubmenu_timers, hash_code); + } - _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); + _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); - if (listview_id == IDC_RULES_CUSTOM) - { _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_DELETE), L"\tDel")); - _r_menu_additem (hmenu, IDM_DELETE, localized_string->buffer); - if (_app_getruleinfobyid (hash_code, INFO_IS_READONLY, &is_readonly, sizeof (is_readonly))) + _r_menu_additem (hmenu, 0, NULL); + _r_menu_additem (hmenu, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); + _r_menu_additem (hmenu, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); + _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); + _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); + + column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); + + if (column_text) { - if (is_readonly) - _r_menu_enableitem (hmenu, IDM_DELETE, MF_BYCOMMAND, FALSE); + _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); + _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); + + _r_obj_dereference (column_text); } - } - _r_menu_additem (hmenu, 0, NULL); - _r_menu_additem (hmenu, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); - _r_menu_additem (hmenu, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); - _r_menu_additem (hmenu, 0, NULL); + if (ptr_app) + { + if (_app_getappinfo (ptr_app, INFO_IS_SILENT, &is_checked, sizeof (is_checked))) + { + if (is_checked) + _r_menu_checkitem (hmenu, IDM_DISABLENOTIFICATIONS, 0, MF_BYCOMMAND, is_checked); + } + } - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); - - _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); - - _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); - - column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); - - if (column_text) - { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); - - _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); - - _r_obj_dereference (column_text); - } - } - else if (listview_id == IDC_NETWORK) - { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SHOWINLIST), L"\tEnter")); - - _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_OPENRULESEDITOR), L"...")); - - _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); - - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); - - _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); - - _r_menu_additem (hmenu, IDM_DELETE, _r_locale_getstring (IDS_NETWORK_CLOSE)); - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); - - _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); - - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); - - _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); - - column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); - - if (column_text) - { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); - - _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); - - _r_obj_dereference (column_text); - } - - ptr_network = _app_network_getitem (hash_code); - - if (ptr_network) - { - if (ptr_network->af != AF_INET || ptr_network->state != MIB_TCP_STATE_ESTAB) + if (listview_id != IDC_APPS_PROFILE) _r_menu_enableitem (hmenu, IDM_DELETE, MF_BYCOMMAND, FALSE); - _r_obj_dereference (ptr_network); + break; } - } - else if (listview_id == IDC_LOG) - { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SHOWINLIST), L"\tEnter")); - _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_OPENRULESEDITOR), L"...")); - - _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); - - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); - - _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_LOGCLEAR), L"\tCtrl+X")); - - _r_menu_additem (hmenu, IDM_TRAY_LOGCLEAR, localized_string->buffer); - - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); - - _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); - - _r_menu_additem (hmenu, 0, NULL); - - _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); - - _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); - - column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); - - if (column_text) + case IDC_RULES_BLOCKLIST: + case IDC_RULES_SYSTEM: + case IDC_RULES_CUSTOM: { - _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); + if (listview_id == IDC_RULES_CUSTOM) + { + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_ADD), L"...")); + _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); + } - _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EDIT2), L"...\tEnter")); + _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); - _r_obj_dereference (column_text); + if (listview_id == IDC_RULES_CUSTOM) + { + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_DELETE), L"\tDel")); + + _r_menu_additem (hmenu, IDM_DELETE, localized_string->buffer); + + if (_app_getruleinfobyid (hash_code, INFO_IS_READONLY, &is_readonly, sizeof (is_readonly))) + { + if (is_readonly) + _r_menu_enableitem (hmenu, IDM_DELETE, MF_BYCOMMAND, FALSE); + } + } + + _r_menu_additem (hmenu, 0, NULL); + _r_menu_additem (hmenu, IDM_CHECK, _r_locale_getstring (IDS_CHECK)); + _r_menu_additem (hmenu, IDM_UNCHECK, _r_locale_getstring (IDS_UNCHECK)); + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); + + _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); + + _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); + + column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); + + if (column_text) + { + _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); + + _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); + + _r_obj_dereference (column_text); + } + + break; + } + + case IDC_NETWORK: + { + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SHOWINLIST), L"\tEnter")); + _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_OPENRULESEDITOR), L"...")); + _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); + _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); + + _r_menu_additem (hmenu, IDM_DELETE, _r_locale_getstring (IDS_NETWORK_CLOSE)); + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); + _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); + _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); + + column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); + + if (column_text) + { + _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); + + _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); + + _r_obj_dereference (column_text); + } + + ptr_network = _app_network_getitem (hash_code); + + if (ptr_network) + { + if (ptr_network->af != AF_INET || ptr_network->state != MIB_TCP_STATE_ESTAB) + _r_menu_enableitem (hmenu, IDM_DELETE, MF_BYCOMMAND, FALSE); + + _r_obj_dereference (ptr_network); + } + + break; + } + + case IDC_LOG: + { + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SHOWINLIST), L"\tEnter")); + _r_menu_additem_ex (hmenu, IDM_PROPERTIES, localized_string->buffer, MF_DEFAULT); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_OPENRULESEDITOR), L"...")); + _r_menu_additem (hmenu, IDM_OPENRULESEDITOR, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_EXPLORE), L"\tCtrl+E")); + _r_menu_additem (hmenu, IDM_EXPLORE, localized_string->buffer); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_LOGCLEAR), L"\tCtrl+X")); + _r_menu_additem (hmenu, IDM_TRAY_LOGCLEAR, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_SELECT_ALL), L"\tCtrl+A")); + _r_menu_additem (hmenu, IDM_SELECT_ALL, localized_string->buffer); + + _r_menu_additem (hmenu, 0, NULL); + + _r_obj_movereference (&localized_string, _r_obj_concatstrings (2, _r_locale_getstring (IDS_COPY), L"\tCtrl+C")); + _r_menu_additem (hmenu, IDM_COPY, localized_string->buffer); + + column_text = _r_listview_getcolumntext (hwnd, listview_id, lv_column_current); + + if (column_text) + { + _r_obj_movereference (&localized_string, _r_obj_concatstrings (4, _r_locale_getstring (IDS_COPY), L" \"", column_text->buffer, L"\"")); + _r_menu_additem (hmenu, IDM_COPY2, localized_string->buffer); + + _r_obj_dereference (column_text); + } + + break; } } @@ -963,6 +976,7 @@ VOID _app_message_traycontextmenu ( if (!hsubmenu) { DestroyMenu (hmenu); + return; } @@ -1617,7 +1631,7 @@ VOID _app_displayinforule_callback ( { if (ptr_rule->is_enabled) { - if (ptr_rule->is_forservices || !_r_obj_ishashtableempty (ptr_rule->apps)) + if (ptr_rule->is_forservices || !_r_obj_isempty (ptr_rule->apps)) { lpnmlv->item.iGroupId = 1; } @@ -2107,8 +2121,8 @@ VOID _app_command_idtorules ( ULONG_PTR app_hash; ULONG_PTR rule_idx; INT listview_id; - INT item_id; - BOOL is_remove; + INT item_id = -1; + BOOL is_remove = -1; listview_id = _app_listview_getcurrent (hwnd); @@ -2121,9 +2135,6 @@ VOID _app_command_idtorules ( if (!ptr_rule) return; - item_id = -1; - is_remove = -1; - while ((item_id = _r_listview_getnextselected (hwnd, listview_id, item_id)) != -1) { app_hash = _app_listview_getitemcontext (hwnd, listview_id, item_id); @@ -2182,7 +2193,7 @@ VOID _app_command_idtotimers ( ULONG_PTR timer_idx; LONG64 seconds; INT listview_id; - INT item_id; + INT item_id = -1; listview_id = _app_listview_getcurrent (hwnd); @@ -2191,7 +2202,6 @@ VOID _app_command_idtotimers ( timer_idx = (ULONG_PTR)ctrl_id - IDX_TIMER; seconds = timer_array[timer_idx]; - item_id = -1; if (_wfp_isfiltersinstalled ()) { @@ -2312,9 +2322,7 @@ VOID _app_command_logclear ( if (!is_valid) { _r_queuedlock_acquireshared (&lock_loglist); - - is_valid = !_r_obj_ishashtableempty (log_table); - + is_valid = !_r_obj_isempty (log_table); _r_queuedlock_releaseshared (&lock_loglist); } @@ -2679,7 +2687,7 @@ VOID _app_command_delete ( if (!ptr_app->is_undeletable) // skip "undeletable" apps { - if (!_r_obj_isarrayempty (ptr_app->guids)) + if (!_r_obj_isempty (ptr_app->guids)) _r_obj_addarrayitems (guids, ptr_app->guids->items, ptr_app->guids->count); _r_listview_deleteitem (hwnd, listview_id, i); @@ -2706,7 +2714,7 @@ VOID _app_command_delete ( { apps_checker = _r_obj_createhashtable (sizeof (SHORT), NULL); - if (!_r_obj_isarrayempty (ptr_rule->guids)) + if (!_r_obj_isempty (ptr_rule->guids)) _r_obj_addarrayitems (guids, ptr_rule->guids->items, ptr_rule->guids->count); enum_key = 0; @@ -2766,7 +2774,7 @@ VOID _app_command_delete ( if (guids) { - if (!_r_obj_isarrayempty (guids)) + if (!_r_obj_isempty (guids)) { if (_wfp_isfiltersinstalled ()) { @@ -2793,8 +2801,8 @@ VOID _app_command_disable ( PITEM_APP ptr_app; ULONG_PTR app_hash; INT listview_id; - INT item_id; - BOOL new_val; + INT item_id = -1; + BOOL new_val = -1; listview_id = _app_listview_getcurrent (hwnd); @@ -2802,9 +2810,6 @@ VOID _app_command_disable ( if (!(listview_id >= IDC_APPS_PROFILE && listview_id <= IDC_APPS_UWP)) return; - item_id = -1; - new_val = -1; - while ((item_id = _r_listview_getnextselected (hwnd, listview_id, item_id)) != -1) { app_hash = _app_listview_getitemcontext (hwnd, listview_id, item_id); @@ -3143,7 +3148,7 @@ VOID _app_command_purgeunused ( _app_timer_reset (NULL, ptr_app); _app_notify_freeobject (NULL, ptr_app); - if (!_r_obj_isarrayempty (ptr_app->guids)) + if (!_r_obj_isempty (ptr_app->guids)) _r_obj_addarrayitems (guids, ptr_app->guids->items, ptr_app->guids->count); _r_obj_addhashtableitem (apps_list, hash_code, NULL); @@ -3166,7 +3171,7 @@ VOID _app_command_purgeunused ( _r_queuedlock_releaseexclusive (&lock_apps); - if (!_r_obj_isarrayempty (guids) && _wfp_isfiltersinstalled ()) + if (!_r_obj_isempty (guids) && _wfp_isfiltersinstalled ()) { hengine = _wfp_getenginehandle (); @@ -3190,7 +3195,7 @@ VOID _app_command_purgetimers ( HANDLE hengine; PR_LIST rules; PITEM_APP ptr_app = NULL; - ULONG_PTR enum_key; + ULONG_PTR enum_key = 0; if (!_app_istimersactive ()) return; @@ -3202,8 +3207,6 @@ VOID _app_command_purgetimers ( _r_queuedlock_acquireshared (&lock_apps); - enum_key = 0; - while (_r_obj_enumhashtablepointer (apps_table, &ptr_app, NULL, &enum_key)) { if (_app_istimerset (ptr_app)) @@ -3218,7 +3221,7 @@ VOID _app_command_purgetimers ( if (rules) { - if (!_r_obj_islistempty (rules)) + if (!_r_obj_isempty (rules)) { if (_wfp_isfiltersinstalled ()) { diff --git a/src/network.c b/src/network.c index 773f43fa..266d3df7 100644 --- a/src/network.c +++ b/src/network.c @@ -683,7 +683,7 @@ VOID _app_network_printlistviewtable ( if (!string) continue; - _app_listview_addnetworkitem (network_context->hwnd, ptr_network, network_hash); + _app_listview_addnetworkitem (network_context->hwnd, network_hash); if (ptr_network->path && ptr_network->app_hash) _app_queue_fileinformation (ptr_network->path, ptr_network->app_hash, ptr_network->type, IDC_NETWORK); diff --git a/src/notifications.c b/src/notifications.c index da133746..e5b19eff 100644 --- a/src/notifications.c +++ b/src/notifications.c @@ -1406,7 +1406,7 @@ INT_PTR CALLBACK NotificationProc ( { _r_obj_removehashtableitem (ptr_rule->apps, app_hash); - if (_r_obj_ishashtableempty (ptr_rule->apps)) + if (_r_obj_isempty (ptr_rule->apps)) _app_ruleenable (ptr_rule, FALSE, TRUE); } else diff --git a/src/profile.c b/src/profile.c index 424f2d53..3d87a145 100644 --- a/src/profile.c +++ b/src/profile.c @@ -825,7 +825,7 @@ VOID _app_getcount ( if (ptr_rule->type == DATA_RULE_USER) { - if (ptr_rule->is_enabled && !_r_obj_ishashtableempty (ptr_rule->apps)) + if (ptr_rule->is_enabled && !_r_obj_isempty (ptr_rule->apps)) status->rules_global_count += 1; if (ptr_rule->is_readonly) @@ -863,7 +863,7 @@ COLORREF _app_getrulecolor ( { color_hash = config.color_invalid; } - else if (_r_config_getboolean_ex (L"IsHighlightSpecial", TRUE, L"colors") && (ptr_rule->is_forservices || !_r_obj_ishashtableempty (ptr_rule->apps))) + else if (_r_config_getboolean_ex (L"IsHighlightSpecial", TRUE, L"colors") && (ptr_rule->is_forservices || !_r_obj_isempty (ptr_rule->apps))) { color_hash = config.color_special; } @@ -961,7 +961,7 @@ VOID _app_ruleremoveapp ( if (!_r_obj_removehashtableitem (ptr_rule->apps, app_hash)) return; - if (ptr_rule->is_enabled && _r_obj_ishashtableempty (ptr_rule->apps)) + if (ptr_rule->is_enabled && _r_obj_isempty (ptr_rule->apps)) { ptr_rule->is_enabled = FALSE; ptr_rule->is_haveerrors = FALSE; diff --git a/src/timer.c b/src/timer.c index 17450ce4..69a857a6 100644 --- a/src/timer.c +++ b/src/timer.c @@ -5,7 +5,7 @@ BOOLEAN _app_istimersactive () { - PITEM_APP ptr_app; + PITEM_APP ptr_app = NULL; ULONG_PTR enum_key = 0; _r_queuedlock_acquireshared (&lock_apps); @@ -58,10 +58,10 @@ VOID _app_timer_set ( _r_unixtime_to_filetime (current_time + seconds, &file_time); + _r_calc_filetime2largeinteger (&file_time, &li); + if (ptr_app->htimer) { - _r_calc_filetime2largeinteger (&file_time, &li); - TpSetTimerEx (ptr_app->htimer, &li, 0, 0); is_created = TRUE; @@ -72,8 +72,6 @@ VOID _app_timer_set ( if (NT_SUCCESS (status)) { - _r_calc_filetime2largeinteger (&file_time, &li); - TpSetTimerEx (htimer, &li, 0, 0); ptr_app->htimer = htimer; diff --git a/src/wfp.c b/src/wfp.c index ef2de368..1ad1130c 100644 --- a/src/wfp.c +++ b/src/wfp.c @@ -222,14 +222,12 @@ BOOLEAN _wfp_initialize ( FWPM_PROVIDER provider; FWPM_SUBLAYER sublayer; FWP_VALUE val; - FWP_VALUE0* fwp_query; + FWP_VALUE0* fwp_query = NULL; ULONG status; - BOOLEAN is_success; BOOLEAN is_providerexist; BOOLEAN is_sublayerexist; BOOLEAN is_intransact; - - is_success = TRUE; // already initialized + BOOLEAN is_success = TRUE; // already initialized _r_queuedlock_acquireshared (&lock_transaction); @@ -263,6 +261,7 @@ BOOLEAN _wfp_initialize ( if (is_intransact) { FwpmTransactionAbort (engine_handle); + is_intransact = FALSE; } @@ -302,6 +301,7 @@ BOOLEAN _wfp_initialize ( if (is_intransact) { FwpmTransactionAbort (engine_handle); + is_intransact = FALSE; } @@ -336,8 +336,6 @@ BOOLEAN _wfp_initialize ( // dropped packets logging (win7+) if (!config.is_neteventset) { - fwp_query = NULL; - // query net events state config.is_neteventenabled = FALSE; @@ -411,9 +409,9 @@ VOID _wfp_uninitialize ( PR_ARRAY callouts; PR_STRING string; LPCGUID guid; - FWP_VALUE val; - ULONG status; + FWP_VALUE val = {0}; BOOLEAN is_intransact; + ULONG status; _r_queuedlock_acquireshared (&lock_transaction); @@ -423,8 +421,6 @@ VOID _wfp_uninitialize ( if (!config.is_neteventenabled && config.is_neteventset) { - RtlZeroMemory (&val, sizeof (val)); - val.type = FWP_UINT32; val.uint32 = FALSE; @@ -478,17 +474,13 @@ VOID _wfp_uninitialize ( status = FwpmSubLayerDeleteByKey (engine_handle, &GUID_WfpSublayer); if (status != ERROR_SUCCESS && status != FWP_E_SUBLAYER_NOT_FOUND) - { _r_log (LOG_LEVEL_ERROR, &GUID_TrayIcon, L"FwpmSubLayerDeleteByKey", status, NULL); - } // destroy provider status = FwpmProviderDeleteByKey (engine_handle, &GUID_WfpProvider); if (status != ERROR_SUCCESS && status != FWP_E_PROVIDER_NOT_FOUND) - { _r_log (LOG_LEVEL_ERROR, &GUID_TrayIcon, L"FwpmProviderDeleteByKey", status, NULL); - } if (is_intransact) _wfp_transact_commit (engine_handle, DBG_ARG); @@ -565,7 +557,7 @@ VOID _wfp_installfilters ( _r_queuedlock_releaseshared (&lock_apps); - if (!_r_obj_islistempty2 (rules)) + if (!_r_obj_isempty2 (rules)) { _wfp_create3filters (engine_handle, rules, DBG_ARG, is_intransact); @@ -588,7 +580,7 @@ VOID _wfp_installfilters ( _r_queuedlock_releaseshared (&lock_rules); - if (!_r_obj_islistempty2 (rules)) + if (!_r_obj_isempty2 (rules)) { _wfp_create4filters (engine_handle, rules, DBG_ARG, is_intransact); @@ -1394,7 +1386,7 @@ BOOLEAN _wfp_create4filters ( ULONG_PTR enum_key; BOOLEAN is_enabled; - if (_r_obj_islistempty (rules)) + if (_r_obj_isempty (rules)) return FALSE; is_enabled = _app_initinterfacestate (_r_app_gethwnd (), FALSE); @@ -1413,7 +1405,7 @@ BOOLEAN _wfp_create4filters ( if (!ptr_rule) continue; - if (!_r_obj_isarrayempty (ptr_rule->guids)) + if (!_r_obj_isempty (ptr_rule->guids)) { _r_obj_addarrayitems (guids, ptr_rule->guids->items, ptr_rule->guids->count); @@ -1514,7 +1506,7 @@ BOOLEAN _wfp_create4filters ( } } - if (!_r_obj_ishashtableempty (ptr_rule->apps)) + if (!_r_obj_isempty (ptr_rule->apps)) { enum_key = 0; @@ -1614,7 +1606,7 @@ BOOLEAN _wfp_create3filters ( PR_STRING string; BOOLEAN is_enabled; - if (_r_obj_islistempty (rules)) + if (_r_obj_isempty (rules)) return FALSE; if (!is_intransact && _wfp_isfiltersapplying ()) @@ -1630,7 +1622,7 @@ BOOLEAN _wfp_create3filters ( { ptr_app = _r_obj_getlistitem (rules, i); - if (ptr_app && !_r_obj_isarrayempty (ptr_app->guids)) + if (ptr_app && !_r_obj_isempty (ptr_app->guids)) { _r_obj_addarrayitems (guids, ptr_app->guids->items, ptr_app->guids->count); @@ -1769,7 +1761,7 @@ BOOLEAN _wfp_create2filters ( if (!is_intransact) { - if (!_r_obj_isarrayempty (filter_ids)) + if (!_r_obj_isempty (filter_ids)) { for (ULONG_PTR i = 0; i < _r_obj_getarraysize (filter_ids); i++) { @@ -1784,7 +1776,7 @@ BOOLEAN _wfp_create2filters ( is_intransact = !_wfp_transact_start (engine_handle, DBG_ARG_VAR); } - if (!_r_obj_isarrayempty (filter_ids)) + if (!_r_obj_isempty (filter_ids)) { for (ULONG_PTR i = 0; i < _r_obj_getarraysize (filter_ids); i++) { @@ -2333,8 +2325,7 @@ BOOLEAN _wfp_create2filters ( fwfc[0].fieldKey = FWPM_CONDITION_FLAGS; fwfc[0].matchType = FWP_MATCH_FLAGS_NONE_SET; fwfc[0].conditionValue.type = FWP_UINT32; - fwfc[0].conditionValue.uint32 = FWP_CONDITION_FLAG_IS_OUTBOUND_PASS_THRU | - FWP_CONDITION_FLAG_IS_INBOUND_PASS_THRU; + fwfc[0].conditionValue.uint32 = FWP_CONDITION_FLAG_IS_OUTBOUND_PASS_THRU | FWP_CONDITION_FLAG_IS_INBOUND_PASS_THRU; _wfp_createfilter ( engine_handle, @@ -2493,9 +2484,9 @@ ULONG _wfp_dumpcallouts ( _Outptr_ PR_ARRAY_PTR out_buffer ) { - FWPM_CALLOUT **callouts_enum; + FWPM_CALLOUT **callouts_enum = NULL; FWPM_CALLOUT *callout; - PR_ARRAY guids; + PR_ARRAY guids = NULL; HANDLE enum_handle = NULL; ULONG status; UINT32 return_count; @@ -2507,9 +2498,6 @@ ULONG _wfp_dumpcallouts ( if (status != ERROR_SUCCESS) return status; - callouts_enum = NULL; - guids = NULL; - status = FwpmCalloutEnum (engine_handle, enum_handle, UINT32_MAX, &callouts_enum, &return_count); if (status != ERROR_SUCCESS) @@ -2535,7 +2523,7 @@ ULONG _wfp_dumpcallouts ( _r_obj_addarrayitem (guids, &callout->calloutKey); } - if (_r_obj_isarrayempty2 (guids)) + if (_r_obj_isempty2 (guids)) { status = ERROR_NOT_FOUND; @@ -2585,6 +2573,7 @@ ULONG _wfp_dumpfilters ( if (!filters_enum) { status = ERROR_NOT_FOUND; + goto CleanupExit; } @@ -2601,7 +2590,7 @@ ULONG _wfp_dumpfilters ( _r_obj_addarrayitem (guids, &filter->filterKey); } - if (_r_obj_isarrayempty2 (guids)) + if (_r_obj_isempty2 (guids)) { status = ERROR_NOT_FOUND;