Thu Aug 5 14:03:17 2010 UTC ()
Fix build on big-endian hosts.


(dogcow)
diff -r1.2 -r1.3 src/external/bsd/wpa/dist/src/drivers/driver_bsd.c

cvs diff -r1.2 -r1.3 src/external/bsd/wpa/dist/src/drivers/driver_bsd.c (expand / switch to unified diff)

--- src/external/bsd/wpa/dist/src/drivers/driver_bsd.c 2010/08/04 17:12:34 1.2
+++ src/external/bsd/wpa/dist/src/drivers/driver_bsd.c 2010/08/05 14:03:17 1.3
@@ -616,26 +616,29 @@ bsd_get_seqnum(const char *ifname, void  @@ -616,26 +616,29 @@ bsd_get_seqnum(const char *ifname, void
616 memset(&wk, 0, sizeof(wk)); 616 memset(&wk, 0, sizeof(wk));
617 if (addr == NULL) 617 if (addr == NULL)
618 memset(wk.ik_macaddr, 0xff, IEEE80211_ADDR_LEN); 618 memset(wk.ik_macaddr, 0xff, IEEE80211_ADDR_LEN);
619 else 619 else
620 memcpy(wk.ik_macaddr, addr, IEEE80211_ADDR_LEN); 620 memcpy(wk.ik_macaddr, addr, IEEE80211_ADDR_LEN);
621 wk.ik_keyix = idx; 621 wk.ik_keyix = idx;
622 622
623 if (get80211var(priv, IEEE80211_IOC_WPAKEY, &wk, sizeof(wk)) < 0) { 623 if (get80211var(priv, IEEE80211_IOC_WPAKEY, &wk, sizeof(wk)) < 0) {
624 printf("Failed to get encryption.\n"); 624 printf("Failed to get encryption.\n");
625 return -1; 625 return -1;
626 } 626 }
627 627
628#ifdef WORDS_BIGENDIAN 628#ifdef WORDS_BIGENDIAN
 629#ifndef WPA_KEY_RSC_LEN
 630#define WPA_KEY_RSC_LEN 8
 631#endif
629 { 632 {
630 /* 633 /*
631 * wk.ik_keytsc is in host byte order (big endian), need to 634 * wk.ik_keytsc is in host byte order (big endian), need to
632 * swap it to match with the byte order used in WPA. 635 * swap it to match with the byte order used in WPA.
633 */ 636 */
634 int i; 637 int i;
635 u8 tmp[WPA_KEY_RSC_LEN]; 638 u8 tmp[WPA_KEY_RSC_LEN];
636 memcpy(tmp, &wk.ik_keytsc, sizeof(wk.ik_keytsc)); 639 memcpy(tmp, &wk.ik_keytsc, sizeof(wk.ik_keytsc));
637 for (i = 0; i < WPA_KEY_RSC_LEN; i++) { 640 for (i = 0; i < WPA_KEY_RSC_LEN; i++) {
638 seq[i] = tmp[WPA_KEY_RSC_LEN - i - 1]; 641 seq[i] = tmp[WPA_KEY_RSC_LEN - i - 1];
639 } 642 }
640 } 643 }
641#else /* WORDS_BIGENDIAN */ 644#else /* WORDS_BIGENDIAN */