Преглед изворни кода

qcacld-3.0: Show peer in getTdlsPeers only if STA is associated

qcacld-2.0 to qcacld-3.0 propagation

If the STA is previously associated with AP and has TDLS peers,
then getTdlsPeers will show the peers even after STA is
disassociated.

Thus, the fix is to show the peers only if the STA is in
connected state.

Change-Id: I8686ae3b8bb007b58942cdbd8873e48f227fe443
CRs-Fixed: 2037534
Nitesh Shah пре 8 година
родитељ
комит
621132d764
1 измењених фајлова са 14 додато и 0 уклоњено
  1. 14 0
      core/hdd/src/wlan_hdd_tdls.c

+ 14 - 0
core/hdd/src/wlan_hdd_tdls.c

@@ -2478,12 +2478,26 @@ int wlan_hdd_tdls_get_all_peers(hdd_adapter_t *pAdapter, char *buf, int buflen)
 	hddTdlsPeer_t *curr_peer;
 	tdlsCtx_t *pHddTdlsCtx;
 	hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
+	hdd_station_ctx_t *hdd_sta_ctx;
 
 	ENTER();
 
 	if (0 != (wlan_hdd_validate_context(pHddCtx)))
 		return 0;
 
+	if ((QDF_STA_MODE != pAdapter->device_mode)
+	    && (QDF_P2P_CLIENT_MODE != pAdapter->device_mode)) {
+		len = scnprintf(buf, buflen,
+				"\nNo TDLS support for this adapter\n");
+		return len;
+	}
+
+	hdd_sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
+	if (eConnectionState_Associated != hdd_sta_ctx->conn_info.connState) {
+		len = scnprintf(buf, buflen, "\nSTA is not associated\n");
+		return len;
+	}
+
 	init_len = buflen;
 	len = scnprintf(buf, buflen, "\n%-18s%-3s%-4s%-3s%-5s\n",
 			"MAC", "Id", "cap", "up", "RSSI");