PERFORCE change 117714 for review

Sam Leffler sam at FreeBSD.org
Mon Apr 9 04:10:56 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=117714

Change 117714 by sam at sam_ebb on 2007/04/09 04:10:05

	move idiom for copying an information element into a function

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#73 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#73 (text+ko) ====

@@ -241,6 +241,16 @@
 	return error;
 }
 
+static __inline u_int8_t *
+copyie(u_int8_t *cp, const u_int8_t *ie)
+{
+	if (ie != NULL) {
+		memcpy(cp, ie, 2+ie[1]);
+		cp += 2+ie[1];
+	}
+	return cp;
+}
+
 #ifdef COMPAT_FREEBSD6
 #define	IEEE80211_IOC_SCAN_RESULTS_OLD	24
 
@@ -331,14 +341,8 @@
 	memcpy(cp, se->se_ssid+2, sr->isr_ssid_len);
 	cp += sr->isr_ssid_len;
 	if (sr->isr_ie_len) {
-		if (se->se_wpa_ie != NULL) {
-			memcpy(cp, se->se_wpa_ie, 2+se->se_wpa_ie[1]);
-			cp += 2+se->se_wpa_ie[1];
-		}
-		if (se->se_wme_ie != NULL) {
-			memcpy(cp, se->se_wme_ie, 2+se->se_wme_ie[1]);
-			cp += 2+se->se_wme_ie[1];
-		}
+		cp = copyie(cp, se->se_wpa_ie);
+		cp = copyie(cp, se->se_wme_ie);
 	}
 
 	req->space -= len;
@@ -453,22 +457,10 @@
 	memcpy(cp, se->se_ssid+2, sr->isr_ssid_len);
 	cp += sr->isr_ssid_len;
 	if (sr->isr_ie_len) {
-		if (se->se_wpa_ie != NULL) {
-			memcpy(cp, se->se_wpa_ie, 2+se->se_wpa_ie[1]);
-			cp += 2+se->se_wpa_ie[1];
-		}
-		if (se->se_rsn_ie != NULL) {
-			memcpy(cp, se->se_rsn_ie, 2+se->se_rsn_ie[1]);
-			cp += 2+se->se_rsn_ie[1];
-		}
-		if (se->se_wme_ie != NULL) {
-			memcpy(cp, se->se_wme_ie, 2+se->se_wme_ie[1]);
-			cp += 2+se->se_wme_ie[1];
-		}
-		if (se->se_ath_ie != NULL) {
-			memcpy(cp, se->se_ath_ie, 2+se->se_ath_ie[1]);
-			cp += 2+se->se_ath_ie[1];
-		}
+		cp = copyie(cp, se->se_wpa_ie);
+		cp = copyie(cp, se->se_rsn_ie);
+		cp = copyie(cp, se->se_wme_ie);
+		cp = copyie(cp, se->se_ath_ie);
 	}
 
 	req->space -= len;
@@ -599,22 +591,10 @@
 	si->isi_inact = (si->isi_inact - ni->ni_inact) * IEEE80211_INACT_WAIT;
 
 	cp = (u_int8_t *)(si+1);
-	if (ni->ni_wpa_ie != NULL) {
-		memcpy(cp, ni->ni_wpa_ie, 2+ni->ni_wpa_ie[1]);
-		cp += 2+ni->ni_wpa_ie[1];
-	}
-	if (ni->ni_rsn_ie != NULL) {
-		memcpy(cp, ni->ni_rsn_ie, 2+ni->ni_rsn_ie[1]);
-		cp += 2+ni->ni_rsn_ie[1];
-	}
-	if (ni->ni_wme_ie != NULL) {
-		memcpy(cp, ni->ni_wme_ie, 2+ni->ni_wme_ie[1]);
-		cp += 2+ni->ni_wme_ie[1];
-	}
-	if (ni->ni_ath_ie != NULL) {
-		memcpy(cp, ni->ni_ath_ie, 2+ni->ni_ath_ie[1]);
-		cp += 2+ni->ni_ath_ie[1];
-	}
+	cp = copyie(cp, ni->ni_wpa_ie);
+	cp = copyie(cp, ni->ni_rsn_ie);
+	cp = copyie(cp, ni->ni_wme_ie);
+	cp = copyie(cp, ni->ni_ath_ie);
 
 	req->si = (struct ieee80211req_sta_info *)(((u_int8_t *)si) + len);
 	req->space -= len;


More information about the p4-projects mailing list