X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=wpa_supplicant%2Fmain_winsvc.c;h=9950aa99ae7a866349d8ace5d035fbba11890bf0;hb=fac72f93dd83f52fd14d7787b2fc9cf4b20762dd;hp=b5be9fc1ff12e9c7aa36b4474efb7f79ef1acba3;hpb=6fc6879bd55a394f807cbbe927df736c190cb8ab;p=mech_eap.git diff --git a/wpa_supplicant/main_winsvc.c b/wpa_supplicant/main_winsvc.c index b5be9fc..9950aa9 100644 --- a/wpa_supplicant/main_winsvc.c +++ b/wpa_supplicant/main_winsvc.c @@ -2,17 +2,11 @@ * WPA Supplicant / main() function for Win32 service * Copyright (c) 2003-2006, Jouni Malinen * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * Alternatively, this software may be distributed under the terms of BSD - * license. - * - * See README and COPYING for more details. + * This software may be distributed under the terms of the BSD license. + * See README for more details. * * The root of wpa_supplicant configuration in registry is - * HKEY_LOCAL_MACHINE\SOFTWARE\wpa_supplicant. This level includes global + * HKEY_LOCAL_MACHINE\\SOFTWARE\\%wpa_supplicant. This level includes global * parameters and a 'interfaces' subkey with all the interface configuration * (adapter to confname mapping). Each such mapping is a subkey that has * 'adapter' and 'config' values. @@ -70,9 +64,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 +111,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) == NULL) { + if (skip_on_error) + wpa_printf(MSG_DEBUG, "Skipped interface '%s' due to " + "initialization failure", iface.ifname); + else + return -1; + } return 0; } @@ -162,6 +168,13 @@ static int wpa_supplicant_thread(void) } buflen = sizeof(val); + ret = RegQueryValueEx(hk, TEXT("debug_timestamp"), NULL, NULL, + (LPBYTE) &val, &buflen); + if (ret == ERROR_SUCCESS && buflen == sizeof(val)) { + params.wpa_debug_timestamp = val; + } + + buflen = sizeof(val); ret = RegQueryValueEx(hk, TEXT("debug_use_file"), NULL, NULL, (LPBYTE) &val, &buflen); if (ret == ERROR_SUCCESS && buflen == sizeof(val) && val) {