From: Jouni Malinen Date: Wed, 24 Dec 2008 18:39:32 +0000 (+0200) Subject: wpasvc: Add skip_on_error registry value to skip interfaces on error X-Git-Tag: hostap_0_6_7~69 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=commitdiff_plain;h=f44b6b8c049552d78a7db14b7ab409abddd072e0 wpasvc: Add skip_on_error registry value to skip interfaces on error This can be used to include binding information for multiple interfaces in Windows registry and only use the ones that match with an available network interface. --- diff --git a/wpa_supplicant/main_winsvc.c b/wpa_supplicant/main_winsvc.c index 6d416fd..4b072fc 100644 --- a/wpa_supplicant/main_winsvc.c +++ b/wpa_supplicant/main_winsvc.c @@ -70,9 +70,10 @@ static int read_interface(struct wpa_global *global, HKEY _hk, HKEY hk; #define TBUFLEN 255 TCHAR adapter[TBUFLEN], config[TBUFLEN], ctrl_interface[TBUFLEN]; - DWORD buflen; + DWORD buflen, val; LONG ret; struct wpa_interface iface; + int skip_on_error = 0; ret = RegOpenKeyEx(_hk, name, 0, KEY_QUERY_VALUE, &hk); if (ret != ERROR_SUCCESS) { @@ -116,10 +117,21 @@ static int read_interface(struct wpa_global *global, HKEY _hk, iface.confname = (char *) config; } + buflen = sizeof(val); + ret = RegQueryValueEx(hk, TEXT("skip_on_error"), NULL, NULL, + (LPBYTE) &val, &buflen); + if (ret == ERROR_SUCCESS && buflen == sizeof(val)) + skip_on_error = val; + RegCloseKey(hk); - if (wpa_supplicant_add_iface(global, &iface) == NULL) - return -1; + if (wpa_supplicant_add_iface(global, &iface) == NULL) { + if (skip_on_error) + wpa_printf(MSG_DEBUG, "Skipped interface '%s' due to " + "initialization failure", iface.ifname); + else + return -1; + } return 0; } diff --git a/wpa_supplicant/win_example.reg b/wpa_supplicant/win_example.reg index 876c53c..875d4ef 100755 --- a/wpa_supplicant/win_example.reg +++ b/wpa_supplicant/win_example.reg @@ -38,4 +38,5 @@ REGEDIT4 "adapter"="{A7627643-C310-49E5-BD89-7E77709C04AB}" "config"="test" "ctrl_interface"="" +"skip_on_error"=dword:00000000