Patchwork supplicant/interworking: Convert wpa_printf to wpa_msg.

login
register
mail settings
Submitter Ben Greear
Date Aug. 29, 2013, 10:15 p.m.
Message ID <1377814545-3288-1-git-send-email-greearb@candelatech.com>
Download mbox | patch
Permalink /patch/270973/
State Changes Requested
Headers show

Comments

Ben Greear - Aug. 29, 2013, 10:15 p.m.
From: Ben Greear <greearb@candelatech.com>

Also adds a new message that helped me track down why things
were not working as expected.

Signed-hostap: Ben Greear <greearb@candelatech.com>
---
:100644 100644 36f75a1... 33926c8... M	wpa_supplicant/interworking.c
 wpa_supplicant/interworking.c |  172 +++++++++++++++++++++--------------------
 1 files changed, 89 insertions(+), 83 deletions(-)
Jouni Malinen - Aug. 31, 2013, 7:21 a.m.
On Thu, Aug 29, 2013 at 03:15:45PM -0700, greearb@candelatech.com wrote:
> Also adds a new message that helped me track down why things
> were not working as expected.

Please keep these changes separate.. It is much easier to review changes
when independent additions are not merged together with large number of
wpa_printf to wpa_msg/wpa_dbg changes.

> diff --git a/wpa_supplicant/interworking.c b/wpa_supplicant/interworking.c
> @@ -185,8 +185,8 @@ static int interworking_anqp_send_req(struct wpa_supplicant *wpa_s,
> -	wpa_printf(MSG_DEBUG, "Interworking: ANQP Query Request to " MACSTR,
> -		   MAC2STR(bss->bssid));
> +	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: ANQP Query Request to " MACSTR,
> +		MAC2STR(bss->bssid));

"wpa_printf(MSG_DEBUG" should almost always be replaced with
"wpa_dbg(wpa_s, MSG_DEBUG" instead of "wpa_msg(wpa_s, MSG_DEBUG" to
allow CONFIG_NO_STDOUT_DEBUG to work properly, i.e., to allow debug
messages to be removed to save binary size without affecting control
interface messages of higher importance.


Taken into account that there is a lot of ongoing changes for
interworking.c in separate development branch, these changes would cause
a large number of conflicts. Since these are not critical changes to do
at this point in time, I'd prefer to postpone these until the ongoing
work in this file can be merged in into a public repository.

Patch

diff --git a/wpa_supplicant/interworking.c b/wpa_supplicant/interworking.c
index 36f75a1..33926c8 100644
--- a/wpa_supplicant/interworking.c
+++ b/wpa_supplicant/interworking.c
@@ -185,8 +185,8 @@  static int interworking_anqp_send_req(struct wpa_supplicant *wpa_s,
 	struct wpabuf *extra = NULL;
 	int all = wpa_s->fetch_all_anqp;
 
-	wpa_printf(MSG_DEBUG, "Interworking: ANQP Query Request to " MACSTR,
-		   MAC2STR(bss->bssid));
+	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: ANQP Query Request to " MACSTR,
+		MAC2STR(bss->bssid));
 	wpa_s->interworking_gas_bss = bss;
 
 	info_ids[num_info_ids++] = ANQP_CAPABILITY_LIST;
@@ -241,13 +241,13 @@  static int interworking_anqp_send_req(struct wpa_supplicant *wpa_s,
 	res = gas_query_req(wpa_s->gas, bss->bssid, bss->freq, buf,
 			    interworking_anqp_resp_cb, wpa_s);
 	if (res < 0) {
-		wpa_printf(MSG_DEBUG, "ANQP: Failed to send Query Request");
+		wpa_msg(wpa_s, MSG_DEBUG, "ANQP: Failed to send Query Request");
 		ret = -1;
 		eloop_register_timeout(0, 0, interworking_continue_anqp, wpa_s,
 				       NULL);
 	} else
-		wpa_printf(MSG_DEBUG, "ANQP: Query started with dialog token "
-			   "%u", res);
+		wpa_msg(wpa_s, MSG_DEBUG, "ANQP: Query started with dialog token "
+			"%u", res);
 
 	wpabuf_free(buf);
 	return ret;
@@ -779,8 +779,8 @@  static int interworking_connect_3gpp(struct wpa_supplicant *wpa_s,
 	ie = wpa_bss_get_ie(bss, WLAN_EID_SSID);
 	if (ie == NULL)
 		return -1;
-	wpa_printf(MSG_DEBUG, "Interworking: Connect with " MACSTR " (3GPP)",
-		   MAC2STR(bss->bssid));
+	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Connect with " MACSTR " (3GPP)",
+		MAC2STR(bss->bssid));
 
 	ssid = wpa_config_add_network(wpa_s->conf);
 	if (ssid == NULL)
@@ -828,13 +828,13 @@  static int interworking_connect_3gpp(struct wpa_supplicant *wpa_s,
 		break;
 	}
 	if (res < 0) {
-		wpa_printf(MSG_DEBUG, "Selected EAP method (%d) not supported",
-			   eap_type);
+		wpa_msg(wpa_s, MSG_DEBUG, "Selected EAP method (%d) not supported",
+			eap_type);
 		goto fail;
 	}
 
 	if (!cred->pcsc && set_root_nai(ssid, cred->imsi, prefix) < 0) {
-		wpa_printf(MSG_DEBUG, "Failed to set Root NAI");
+		wpa_msg(wpa_s, MSG_DEBUG, "Failed to set Root NAI");
 		goto fail;
 	}
 
@@ -1110,8 +1110,8 @@  static int interworking_connect_roaming_consortium(
 {
 	struct wpa_ssid *ssid;
 
-	wpa_printf(MSG_DEBUG, "Interworking: Connect with " MACSTR " based on "
-		   "roaming consortium match", MAC2STR(bss->bssid));
+	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Connect with " MACSTR " based on "
+		"roaming consortium match", MAC2STR(bss->bssid));
 
 	ssid = wpa_config_add_network(wpa_s->conf);
 	if (ssid == NULL)
@@ -1131,8 +1131,8 @@  static int interworking_connect_roaming_consortium(
 		goto fail;
 
 	if (cred->eap_method == NULL) {
-		wpa_printf(MSG_DEBUG, "Interworking: No EAP method set for "
-			   "credential using roaming consortium");
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: No EAP method set for "
+			"credential using roaming consortium");
 		goto fail;
 	}
 
@@ -1168,8 +1168,8 @@  int interworking_connect(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
 		return -1;
 	ie = wpa_bss_get_ie(bss, WLAN_EID_SSID);
 	if (ie == NULL || ie[1] == 0) {
-		wpa_printf(MSG_DEBUG, "Interworking: No SSID known for "
-			   MACSTR, MAC2STR(bss->bssid));
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: No SSID known for "
+			MACSTR, MAC2STR(bss->bssid));
 		return -1;
 	}
 
@@ -1178,30 +1178,30 @@  int interworking_connect(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
 		 * We currently support only HS 2.0 networks and those are
 		 * required to use WPA2-Enterprise.
 		 */
-		wpa_printf(MSG_DEBUG, "Interworking: Network does not use "
-			   "RSN");
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Network does not use "
+			"RSN");
 		return -1;
 	}
 
 	cred_rc = interworking_credentials_available_roaming_consortium(wpa_s,
 									bss);
 	if (cred_rc) {
-		wpa_printf(MSG_DEBUG, "Interworking: Highest roaming "
-			   "consortium matching credential priority %d",
-			   cred_rc->priority);
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Highest roaming "
+			"consortium matching credential priority %d",
+			cred_rc->priority);
 	}
 
 	cred = interworking_credentials_available_realm(wpa_s, bss);
 	if (cred) {
-		wpa_printf(MSG_DEBUG, "Interworking: Highest NAI Realm list "
-			   "matching credential priority %d",
-			   cred->priority);
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Highest NAI Realm list "
+			"matching credential priority %d",
+			cred->priority);
 	}
 
 	cred_3gpp = interworking_credentials_available_3gpp(wpa_s, bss);
 	if (cred_3gpp) {
-		wpa_printf(MSG_DEBUG, "Interworking: Highest 3GPP matching "
-			   "credential priority %d", cred_3gpp->priority);
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Highest 3GPP matching "
+			"credential priority %d", cred_3gpp->priority);
 	}
 
 	if (cred_rc &&
@@ -1216,16 +1216,16 @@  int interworking_connect(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
 	}
 
 	if (cred == NULL) {
-		wpa_printf(MSG_DEBUG, "Interworking: No matching credentials "
-			   "found for " MACSTR, MAC2STR(bss->bssid));
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: No matching credentials "
+			"found for " MACSTR, MAC2STR(bss->bssid));
 		return -1;
 	}
 
 	realm = nai_realm_parse(bss->anqp ? bss->anqp->nai_realm : NULL,
 				&count);
 	if (realm == NULL) {
-		wpa_printf(MSG_DEBUG, "Interworking: Could not parse NAI "
-			   "Realm list from " MACSTR, MAC2STR(bss->bssid));
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Could not parse NAI "
+			"Realm list from " MACSTR, MAC2STR(bss->bssid));
 		return -1;
 	}
 
@@ -1238,15 +1238,15 @@  int interworking_connect(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
 	}
 
 	if (!eap) {
-		wpa_printf(MSG_DEBUG, "Interworking: No matching credentials "
-			   "and EAP method found for " MACSTR,
-			   MAC2STR(bss->bssid));
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: No matching credentials "
+			"and EAP method found for " MACSTR,
+			MAC2STR(bss->bssid));
 		nai_realm_free(realm, count);
 		return -1;
 	}
 
-	wpa_printf(MSG_DEBUG, "Interworking: Connect with " MACSTR,
-		   MAC2STR(bss->bssid));
+	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Connect with " MACSTR,
+		MAC2STR(bss->bssid));
 
 	ssid = wpa_config_add_network(wpa_s->conf);
 	if (ssid == NULL) {
@@ -1397,10 +1397,10 @@  static struct wpa_cred * interworking_credentials_available_3gpp(
 #if defined(PCSC_FUNCS) || defined(CONFIG_EAP_PROXY)
 	compare:
 #endif /* PCSC_FUNCS || CONFIG_EAP_PROXY */
-		wpa_printf(MSG_DEBUG, "Interworking: Parsing 3GPP info from "
-			   MACSTR, MAC2STR(bss->bssid));
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Parsing 3GPP info from "
+			MACSTR, MAC2STR(bss->bssid));
 		ret = plmn_id_match(bss->anqp->anqp_3gpp, imsi, mnc_len);
-		wpa_printf(MSG_DEBUG, "PLMN match %sfound", ret ? "" : "not ");
+		wpa_msg(wpa_s, MSG_DEBUG, "PLMN match %sfound", ret ? "" : "not ");
 		if (ret) {
 			if (cred_excluded_ssid(cred, bss))
 				continue;
@@ -1427,12 +1427,12 @@  static struct wpa_cred * interworking_credentials_available_realm(
 	if (wpa_s->conf->cred == NULL)
 		return NULL;
 
-	wpa_printf(MSG_DEBUG, "Interworking: Parsing NAI Realm list from "
-		   MACSTR, MAC2STR(bss->bssid));
+	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Parsing NAI Realm list from "
+		MACSTR, MAC2STR(bss->bssid));
 	realm = nai_realm_parse(bss->anqp->nai_realm, &count);
 	if (realm == NULL) {
-		wpa_printf(MSG_DEBUG, "Interworking: Could not parse NAI "
-			   "Realm list from " MACSTR, MAC2STR(bss->bssid));
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Could not parse NAI "
+			"Realm list from " MACSTR, MAC2STR(bss->bssid));
 		return NULL;
 	}
 
@@ -1444,13 +1444,18 @@  static struct wpa_cred * interworking_credentials_available_realm(
 			if (!nai_realm_match(&realm[i], cred->realm))
 				continue;
 			if (nai_realm_find_eap(cred, &realm[i])) {
-				if (cred_excluded_ssid(cred, bss))
+				if (cred_excluded_ssid(cred, bss)) {
+					wpa_msg(wpa_s, MSG_DEBUG, "Interworking:  Cred excluded SSID.\n");
 					continue;
+				}
 				if (selected == NULL ||
 				    selected->priority < cred->priority)
 					selected = cred;
 				break;
 			}
+			else {
+				wpa_msg(wpa_s, MSG_DEBUG, "Interworking: realm-find-eap returned false.");
+			}
 		}
 	}
 
@@ -1533,8 +1538,8 @@  int interworking_home_sp_cred(struct wpa_supplicant *wpa_s,
 		realm = os_strchr(nai, '@');
 		if (realm)
 			realm++;
-		wpa_printf(MSG_DEBUG, "Interworking: Search for match "
-			   "with SIM/USIM domain %s", realm);
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Search for match "
+			"with SIM/USIM domain %s", realm);
 		if (realm &&
 		    domain_name_list_contains(domain_names, realm))
 			return 1;
@@ -1544,8 +1549,8 @@  int interworking_home_sp_cred(struct wpa_supplicant *wpa_s,
 	if (domain_names == NULL || cred->domain == NULL)
 		return 0;
 
-	wpa_printf(MSG_DEBUG, "Interworking: Search for match with "
-		   "home SP FQDN %s", cred->domain);
+	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Search for match with "
+		"home SP FQDN %s", cred->domain);
 	if (domain_name_list_contains(domain_names, cred->domain))
 		return 1;
 
@@ -1612,14 +1617,15 @@  static void interworking_select_network(struct wpa_supplicant *wpa_s)
 		cred = interworking_credentials_available(wpa_s, bss);
 		if (!cred)
 			continue;
+			
 		if (!wpa_bss_get_ie(bss, WLAN_EID_RSN)) {
 			/*
 			 * We currently support only HS 2.0 networks and those
 			 * are required to use WPA2-Enterprise.
 			 */
-			wpa_printf(MSG_DEBUG, "Interworking: Credential match "
-				   "with " MACSTR " but network does not use "
-				   "RSN", MAC2STR(bss->bssid));
+			wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Credential match "
+				"with " MACSTR " but network does not use "
+				"RSN", MAC2STR(bss->bssid));
 			continue;
 		}
 		count++;
@@ -1663,16 +1669,16 @@  static void interworking_select_network(struct wpa_supplicant *wpa_s)
 		 * have matching APs.
 		 */
 		if (interworking_find_network_match(wpa_s)) {
-			wpa_printf(MSG_DEBUG, "Interworking: Possible BSS "
-				   "match for enabled network configurations");
+			wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Possible BSS "
+				"match for enabled network configurations");
 			if (wpa_s->auto_select)
 				interworking_reconnect(wpa_s);
 			return;
 		}
 
 		if (wpa_s->auto_network_select) {
-			wpa_printf(MSG_DEBUG, "Interworking: Continue "
-				   "scanning after ANQP fetch");
+			wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Continue "
+				"scanning after ANQP fetch");
 			wpa_supplicant_req_scan(wpa_s, wpa_s->scan_interval,
 						0);
 			return;
@@ -1713,9 +1719,9 @@  interworking_match_anqp_info(struct wpa_supplicant *wpa_s, struct wpa_bss *bss)
 		    os_memcmp(bss->ssid, other->ssid, bss->ssid_len) != 0)
 			continue;
 
-		wpa_printf(MSG_DEBUG, "Interworking: Share ANQP data with "
-			   "already fetched BSSID " MACSTR " and " MACSTR,
-			   MAC2STR(other->bssid), MAC2STR(bss->bssid));
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Share ANQP data with "
+			"already fetched BSSID " MACSTR " and " MACSTR,
+			MAC2STR(other->bssid), MAC2STR(bss->bssid));
 		other->anqp->users++;
 		return other->anqp;
 	}
@@ -1823,8 +1829,8 @@  int anqp_send_req(struct wpa_supplicant *wpa_s, const u8 *dst,
 	if (freq <= 0)
 		return -1;
 
-	wpa_printf(MSG_DEBUG, "ANQP: Query Request to " MACSTR " for %u id(s)",
-		   MAC2STR(dst), (unsigned int) num_ids);
+	wpa_msg(wpa_s, MSG_DEBUG, "ANQP: Query Request to " MACSTR " for %u id(s)",
+		MAC2STR(dst), (unsigned int) num_ids);
 
 	buf = anqp_build_req(info_ids, num_ids, NULL);
 	if (buf == NULL)
@@ -1832,11 +1838,11 @@  int anqp_send_req(struct wpa_supplicant *wpa_s, const u8 *dst,
 
 	res = gas_query_req(wpa_s->gas, dst, freq, buf, anqp_resp_cb, wpa_s);
 	if (res < 0) {
-		wpa_printf(MSG_DEBUG, "ANQP: Failed to send Query Request");
+		wpa_msg(wpa_s, MSG_DEBUG, "ANQP: Failed to send Query Request");
 		ret = -1;
 	} else
-		wpa_printf(MSG_DEBUG, "ANQP: Query started with dialog token "
-			   "%u", res);
+		wpa_msg(wpa_s, MSG_DEBUG, "ANQP: Query started with dialog token "
+			"%u", res);
 
 	wpabuf_free(buf);
 	return ret;
@@ -1953,22 +1959,22 @@  static void interworking_parse_rx_anqp_resp(struct wpa_supplicant *wpa_s,
 							     slen);
 				break;
 			default:
-				wpa_printf(MSG_DEBUG, "HS20: Unsupported ANQP "
-					   "vendor type %u", type);
+				wpa_msg(wpa_s, MSG_DEBUG, "HS20: Unsupported ANQP "
+					"vendor type %u", type);
 				break;
 			}
 			break;
 #endif /* CONFIG_HS20 */
 		default:
-			wpa_printf(MSG_DEBUG, "Interworking: Unsupported "
-				   "vendor-specific ANQP OUI %06x",
-				   WPA_GET_BE24(pos));
+			wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Unsupported "
+				"vendor-specific ANQP OUI %06x",
+				WPA_GET_BE24(pos));
 			return;
 		}
 		break;
 	default:
-		wpa_printf(MSG_DEBUG, "Interworking: Unsupported ANQP Info ID "
-			   "%u", info_id);
+		wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Unsupported ANQP Info ID "
+			"%u", info_id);
 		break;
 	}
 }
@@ -1992,8 +1998,8 @@  void anqp_resp_cb(void *ctx, const u8 *dst, u8 dialog_token,
 	pos = wpabuf_head(adv_proto);
 	if (wpabuf_len(adv_proto) < 4 || pos[0] != WLAN_EID_ADV_PROTO ||
 	    pos[1] < 2 || pos[3] != ACCESS_NETWORK_QUERY_PROTOCOL) {
-		wpa_printf(MSG_DEBUG, "ANQP: Unexpected Advertisement "
-			   "Protocol in response");
+		wpa_msg(wpa_s, MSG_DEBUG, "ANQP: Unexpected Advertisement "
+			"Protocol in response");
 		return;
 	}
 
@@ -2017,7 +2023,7 @@  void anqp_resp_cb(void *ctx, const u8 *dst, u8 dialog_token,
 
 	while (pos < end) {
 		if (pos + 4 > end) {
-			wpa_printf(MSG_DEBUG, "ANQP: Invalid element");
+			wpa_msg(wpa_s, MSG_DEBUG, "ANQP: Invalid element");
 			break;
 		}
 		info_id = WPA_GET_LE16(pos);
@@ -2025,8 +2031,8 @@  void anqp_resp_cb(void *ctx, const u8 *dst, u8 dialog_token,
 		slen = WPA_GET_LE16(pos);
 		pos += 2;
 		if (pos + slen > end) {
-			wpa_printf(MSG_DEBUG, "ANQP: Invalid element length "
-				   "for Info ID %u", info_id);
+			wpa_msg(wpa_s, MSG_DEBUG, "ANQP: Invalid element length "
+				"for Info ID %u", info_id);
 			break;
 		}
 		interworking_parse_rx_anqp_resp(wpa_s, bss, dst, info_id, pos,
@@ -2039,8 +2045,8 @@  void anqp_resp_cb(void *ctx, const u8 *dst, u8 dialog_token,
 static void interworking_scan_res_handler(struct wpa_supplicant *wpa_s,
 					  struct wpa_scan_results *scan_res)
 {
-	wpa_printf(MSG_DEBUG, "Interworking: Scan results available - start "
-		   "ANQP fetch");
+	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Scan results available - start "
+		"ANQP fetch");
 	interworking_start_fetch_anqp(wpa_s);
 }
 
@@ -2052,8 +2058,8 @@  int interworking_select(struct wpa_supplicant *wpa_s, int auto_select)
 	wpa_s->auto_network_select = 0;
 	wpa_s->auto_select = !!auto_select;
 	wpa_s->fetch_all_anqp = 0;
-	wpa_printf(MSG_DEBUG, "Interworking: Start scan for network "
-		   "selection");
+	wpa_msg(wpa_s, MSG_DEBUG, "Interworking: Start scan for network "
+		"selection");
 	wpa_s->scan_res_handler = interworking_scan_res_handler;
 	wpa_s->scan_req = MANUAL_SCAN_REQ;
 	wpa_supplicant_req_scan(wpa_s, 0, 0);
@@ -2104,8 +2110,8 @@  int gas_send_request(struct wpa_supplicant *wpa_s, const u8 *dst,
 	if (freq <= 0)
 		return -1;
 
-	wpa_printf(MSG_DEBUG, "GAS request to " MACSTR " (freq %d MHz)",
-		   MAC2STR(dst), freq);
+	wpa_msg(wpa_s, MSG_DEBUG, "GAS request to " MACSTR " (freq %d MHz)",
+		MAC2STR(dst), freq);
 	wpa_hexdump_buf(MSG_DEBUG, "Advertisement Protocol ID", adv_proto);
 	wpa_hexdump_buf(MSG_DEBUG, "GAS Query", query);
 
@@ -2132,11 +2138,11 @@  int gas_send_request(struct wpa_supplicant *wpa_s, const u8 *dst,
 
 	res = gas_query_req(wpa_s->gas, dst, freq, buf, gas_resp_cb, wpa_s);
 	if (res < 0) {
-		wpa_printf(MSG_DEBUG, "GAS: Failed to send Query Request");
+		wpa_msg(wpa_s, MSG_DEBUG, "GAS: Failed to send Query Request");
 		ret = -1;
 	} else
-		wpa_printf(MSG_DEBUG, "GAS: Query started with dialog token "
-			   "%u", res);
+		wpa_msg(wpa_s, MSG_DEBUG, "GAS: Query started with dialog token "
+			"%u", res);
 
 	wpabuf_free(buf);
 	return ret;