#define CAPABILITY_PRIVACY(cap) ((cap) & 0x0010)
struct ssid_t {
- uint8_t element_id;
uint8_t length;
u_char ssid[33]; /* 32 + 1 for null */
};
struct rates_t {
- uint8_t element_id;
uint8_t length;
uint8_t rate[16];
};
struct challenge_t {
- uint8_t element_id;
uint8_t length;
uint8_t text[254]; /* 1-253 + 1 for null */
};
struct fh_t {
- uint8_t element_id;
uint8_t length;
uint16_t dwell_time;
uint8_t hop_set;
};
struct ds_t {
- uint8_t element_id;
uint8_t length;
uint8_t channel;
};
struct cf_t {
- uint8_t element_id;
uint8_t length;
uint8_t count;
uint8_t period;
};
struct tim_t {
- uint8_t element_id;
uint8_t length;
uint8_t count;
uint8_t period;
switch (GET_U_1(p + offset)) {
case E_SSID:
- memcpy(&ssid, p + offset, 2);
+ ssid.length = elementlen;
offset += 2;
length -= 2;
if (ssid.length != 0) {
}
break;
case E_CHALLENGE:
- memcpy(&challenge, p + offset, 2);
+ challenge.length = elementlen;
offset += 2;
length -= 2;
if (challenge.length != 0) {
}
break;
case E_RATES:
- memcpy(&rates, p + offset, 2);
+ rates.length = elementlen;
offset += 2;
length -= 2;
if (rates.length != 0) {
}
break;
case E_DS:
- memcpy(&ds, p + offset, 2);
+ ds.length = elementlen;
offset += 2;
length -= 2;
if (ds.length != 1) {
}
break;
case E_CF:
- memcpy(&cf, p + offset, 2);
+ cf.length = elementlen;
offset += 2;
length -= 2;
if (cf.length != 6) {
}
break;
case E_TIM:
- memcpy(&tim, p + offset, 2);
+ tim.length = elementlen;
offset += 2;
length -= 2;
if (tim.length <= 3U) {