forked from osmocom/wireshark
pcap: Add support to "new" Npcap native mode without setting PATH
Npcap decided not to add "C:\Windows\System32\Npcap" to system PATH in the installation any more (starting from Npcap 0.07 r14). So this patch needs to be applied, otherwise Wireshark will not find Packet.dll (the error message will only say wpcap.dll is missing, but actually is Packet.dll missing). Change-Id: Ifd8b6e6d8ecf9866cd37c3368b604de210ff8c7b Reviewed-on: https://code.wireshark.org/review/15959 Reviewed-by: Yang Luo <hsluoyz@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
This commit is contained in:
parent
6ccee3ecd5
commit
d50b981d38
|
@ -574,6 +574,7 @@ main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
ws_init_dll_search_path();
|
||||
/* Load Wpcap, if possible */
|
||||
load_wpcap();
|
||||
#endif
|
||||
|
|
1
tshark.c
1
tshark.c
|
@ -649,6 +649,7 @@ main(int argc, char *argv[])
|
|||
initialize_funnel_ops();
|
||||
|
||||
#ifdef _WIN32
|
||||
ws_init_dll_search_path();
|
||||
/* Load wpcap if possible. Do this before collecting the run-time version information */
|
||||
load_wpcap();
|
||||
|
||||
|
|
|
@ -383,6 +383,7 @@ int main(int argc, char *argv[])
|
|||
g_log(NULL, G_LOG_LEVEL_DEBUG, "progfile_dir: %s", get_progfile_dir());
|
||||
|
||||
#ifdef _WIN32
|
||||
ws_init_dll_search_path();
|
||||
/* Load wpcap if possible. Do this before collecting the run-time version information */
|
||||
load_wpcap();
|
||||
|
||||
|
|
|
@ -514,6 +514,8 @@ ws_init_dll_search_path()
|
|||
{
|
||||
gboolean dll_dir_set = FALSE;
|
||||
wchar_t *program_path_w;
|
||||
wchar_t npcap_path_w[MAX_PATH];
|
||||
unsigned int retval;
|
||||
|
||||
typedef BOOL (WINAPI *SetDllDirectoryHandler)(LPCTSTR);
|
||||
SetDllDirectoryHandler PSetDllDirectory;
|
||||
|
@ -521,6 +523,13 @@ ws_init_dll_search_path()
|
|||
PSetDllDirectory = (SetDllDirectoryHandler) GetProcAddress(GetModuleHandle(_T("kernel32.dll")), "SetDllDirectoryW");
|
||||
if (PSetDllDirectory) {
|
||||
dll_dir_set = PSetDllDirectory(_T(""));
|
||||
if (dll_dir_set) {
|
||||
retval = GetSystemDirectoryW(npcap_path_w, MAX_PATH);
|
||||
if (0 < retval && retval <= MAX_PATH) {
|
||||
wcscat_s(npcap_path_w, MAX_PATH, L"\\Npcap");
|
||||
dll_dir_set = PSetDllDirectory(npcap_path_w);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!dll_dir_set && init_dll_load_paths()) {
|
||||
|
|
Loading…
Reference in New Issue