Changeset 43ab7b3
- Timestamp:
- 02/08/07 11:46:05 (15 years ago)
- Branches:
- 4.0.1-hotfixes, cachetimestamps, develop, dpdk-ndag, etsilive, getfragoff, help, libtrace4, master, ndag_format, pfring, rc-4.0.1, rc-4.0.2, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance, ringtimestampfixes
- Children:
- 8d347c2
- Parents:
- d242ea8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpacketdump/link_4.c
rb852fd2 r43ab7b3 55 55 } __attribute__ ((__packed__)) ieee80211_ctrl_frame_2addr; 56 56 57 typedef struct ieee80211_data_frame_3 { 58 ieee80211_frame_control ctl; 59 uint16_t duration; 60 uint8_t addr1[6]; 61 uint8_t addr2[6]; 62 uint8_t addr3[6]; 63 uint16_t seq_ctrl; 64 } __attribute__ ((__packed__)) ieee80211_data_frame_3; 57 65 58 66 typedef struct ieee80211_data_frame { … … 650 658 printf(" 802.11MAC: Data frame: "); 651 659 652 if (len < sizeof(ieee80211_data_frame )) {660 if (len < sizeof(ieee80211_data_frame_3)) { 653 661 printf("[Truncated]\n"); 654 662 return; … … 681 689 (data->seq_ctrl & 0xFFF0) >> 4); 682 690 691 hdrlen = sizeof(ieee80211_data_frame_3); 692 683 693 if (! data->ctl.from_ds && ! data->ctl.to_ds) { 684 694 printf(" 802.11MAC: DA = %s\n", macaddr(data->addr1)); … … 694 704 printf(" 802.11MAC: BSSID = %s\n", macaddr(data->addr2)); 695 705 } else { 706 /* Check to make sure we have a four-address frame first */ 707 if (len < sizeof(ieee80211_data_frame)) { 708 printf(" 802.11MAC: [Truncated]\n"); 709 return; 710 } 696 711 printf(" 802.11MAC: DA = %s\n", macaddr(data->addr3)); 697 712 printf(" 802.11MAC: SA = %s\n", macaddr(data->addr4)); 698 713 printf(" 802.11MAC: TA = %s\n", macaddr(data->addr2)); 699 714 printf(" 802.11MAC: RA = %s\n", macaddr(data->addr1)); 700 }701 702 hdrlen = 0; 715 hdrlen = sizeof(ieee80211_data_frame); /* 4 addr header */ 716 } 717 703 718 704 719 if (data->ctl.subtype >= 8) { … … 706 721 if (len > sizeof(ieee80211_qos_data_frame)) 707 722 hdrlen = sizeof(ieee80211_qos_data_frame); 708 } else { 709 if (len > sizeof(ieee80211_data_frame)) 710 hdrlen = sizeof(ieee80211_data_frame); 711 } 712 713 /* hdrlen will be zero if there wasn't a payload */ 714 if (hdrlen > 0) { 723 } 724 725 if (len > hdrlen) { 715 726 pld = (ieee80211_payload *) ((char *)pkt + hdrlen) ; 716 727 printf(" 802.11MAC: Payload ethertype = 0x%04x\n", ntohs(pld->ethertype));
Note: See TracChangeset
for help on using the changeset viewer.