Lines Matching refs:msg
19 struct p2p_message *msg) in p2p_parse_attribute() argument
32 msg->capability = data; in p2p_parse_attribute()
43 msg->device_id = data; in p2p_parse_attribute()
45 MAC2STR(msg->device_id)); in p2p_parse_attribute()
53 msg->go_intent = data; in p2p_parse_attribute()
63 msg->status = data; in p2p_parse_attribute()
77 msg->listen_channel = data; in p2p_parse_attribute()
94 msg->operating_channel = data; in p2p_parse_attribute()
106 msg->channel_list = data; in p2p_parse_attribute()
107 msg->channel_list_len = len; in p2p_parse_attribute()
111 msg->channel_list, msg->channel_list_len); in p2p_parse_attribute()
114 msg->group_info = data; in p2p_parse_attribute()
115 msg->group_info_len = len; in p2p_parse_attribute()
124 msg->p2p_device_info = data; in p2p_parse_attribute()
125 msg->p2p_device_info_len = len; in p2p_parse_attribute()
127 msg->p2p_device_addr = pos; in p2p_parse_attribute()
129 msg->config_methods = WPA_GET_BE16(pos); in p2p_parse_attribute()
131 msg->pri_dev_type = pos; in p2p_parse_attribute()
133 msg->num_sec_dev_types = *pos++; in p2p_parse_attribute()
134 if (msg->num_sec_dev_types * 8 > data + len - pos) { in p2p_parse_attribute()
138 pos += msg->num_sec_dev_types * 8; in p2p_parse_attribute()
158 os_memcpy(msg->device_name, pos, nlen); in p2p_parse_attribute()
159 msg->device_name[nlen] = '\0'; in p2p_parse_attribute()
161 if (msg->device_name[i] == '\0') in p2p_parse_attribute()
163 if (msg->device_name[i] > 0 && in p2p_parse_attribute()
164 msg->device_name[i] < 32) in p2p_parse_attribute()
165 msg->device_name[i] = '_'; in p2p_parse_attribute()
170 MAC2STR(msg->p2p_device_addr), in p2p_parse_attribute()
171 wps_dev_type_bin2str(msg->pri_dev_type, devtype, in p2p_parse_attribute()
173 msg->device_name, msg->config_methods); in p2p_parse_attribute()
181 msg->config_timeout = data; in p2p_parse_attribute()
191 msg->intended_addr = data; in p2p_parse_attribute()
193 MACSTR, MAC2STR(msg->intended_addr)); in p2p_parse_attribute()
201 msg->group_bssid = data; in p2p_parse_attribute()
203 MAC2STR(msg->group_bssid)); in p2p_parse_attribute()
211 msg->group_id = data; in p2p_parse_attribute()
212 msg->group_id_len = len; in p2p_parse_attribute()
214 MACSTR, MAC2STR(msg->group_id)); in p2p_parse_attribute()
216 msg->group_id + ETH_ALEN, in p2p_parse_attribute()
217 msg->group_id_len - ETH_ALEN); in p2p_parse_attribute()
225 msg->invitation_flags = data; in p2p_parse_attribute()
235 msg->manageability = data; in p2p_parse_attribute()
245 msg->noa = data; in p2p_parse_attribute()
246 msg->noa_len = len; in p2p_parse_attribute()
255 msg->ext_listen_timing = data; in p2p_parse_attribute()
258 WPA_GET_LE16(msg->ext_listen_timing), in p2p_parse_attribute()
259 WPA_GET_LE16(msg->ext_listen_timing + 2)); in p2p_parse_attribute()
267 msg->minor_reason_code = data; in p2p_parse_attribute()
269 *msg->minor_reason_code); in p2p_parse_attribute()
290 int p2p_parse_p2p_ie(const struct wpabuf *buf, struct p2p_message *msg) in p2p_parse_p2p_ie() argument
313 if (p2p_parse_attribute(pos[0], pos + 3, attr_len, msg)) in p2p_parse_p2p_ie()
322 static int p2p_parse_wps_ie(const struct wpabuf *buf, struct p2p_message *msg) in p2p_parse_wps_ie() argument
330 if (attr.dev_name && attr.dev_name_len < sizeof(msg->device_name) && in p2p_parse_wps_ie()
331 !msg->device_name[0]) in p2p_parse_wps_ie()
332 os_memcpy(msg->device_name, attr.dev_name, attr.dev_name_len); in p2p_parse_wps_ie()
334 msg->wps_config_methods = in p2p_parse_wps_ie()
337 msg->wps_config_methods); in p2p_parse_wps_ie()
340 msg->dev_password_id = WPA_GET_BE16(attr.dev_password_id); in p2p_parse_wps_ie()
342 msg->dev_password_id); in p2p_parse_wps_ie()
346 msg->wps_pri_dev_type = attr.primary_dev_type; in p2p_parse_wps_ie()
348 wps_dev_type_bin2str(msg->wps_pri_dev_type, devtype, in p2p_parse_wps_ie()
352 msg->wps_sec_dev_type_list = attr.sec_dev_type_list; in p2p_parse_wps_ie()
353 msg->wps_sec_dev_type_list_len = attr.sec_dev_type_list_len; in p2p_parse_wps_ie()
357 msg->wps_vendor_ext[i] = attr.vendor_ext[i]; in p2p_parse_wps_ie()
358 msg->wps_vendor_ext_len[i] = attr.vendor_ext_len[i]; in p2p_parse_wps_ie()
361 msg->manufacturer = attr.manufacturer; in p2p_parse_wps_ie()
362 msg->manufacturer_len = attr.manufacturer_len; in p2p_parse_wps_ie()
363 msg->model_name = attr.model_name; in p2p_parse_wps_ie()
364 msg->model_name_len = attr.model_name_len; in p2p_parse_wps_ie()
365 msg->model_number = attr.model_number; in p2p_parse_wps_ie()
366 msg->model_number_len = attr.model_number_len; in p2p_parse_wps_ie()
367 msg->serial_number = attr.serial_number; in p2p_parse_wps_ie()
368 msg->serial_number_len = attr.serial_number_len; in p2p_parse_wps_ie()
387 int p2p_parse_ies(const u8 *data, size_t len, struct p2p_message *msg) in p2p_parse_ies() argument
393 msg->ds_params = elems.ds_params; in p2p_parse_ies()
395 msg->ssid = elems.ssid - 2; in p2p_parse_ies()
397 msg->wps_attributes = ieee802_11_vendor_ie_concat(data, len, in p2p_parse_ies()
399 if (msg->wps_attributes && in p2p_parse_ies()
400 p2p_parse_wps_ie(msg->wps_attributes, msg)) { in p2p_parse_ies()
401 p2p_parse_free(msg); in p2p_parse_ies()
405 msg->p2p_attributes = ieee802_11_vendor_ie_concat(data, len, in p2p_parse_ies()
407 if (msg->p2p_attributes && in p2p_parse_ies()
408 p2p_parse_p2p_ie(msg->p2p_attributes, msg)) { in p2p_parse_ies()
410 if (msg->p2p_attributes) in p2p_parse_ies()
412 msg->p2p_attributes); in p2p_parse_ies()
413 p2p_parse_free(msg); in p2p_parse_ies()
419 msg->wfd_subelems = ieee802_11_vendor_ie_concat( in p2p_parse_ies()
438 int p2p_parse(const u8 *data, size_t len, struct p2p_message *msg) in p2p_parse() argument
440 os_memset(msg, 0, sizeof(*msg)); in p2p_parse()
446 msg->dialog_token = data[0]; in p2p_parse()
447 wpa_printf(MSG_DEBUG, "P2P: * Dialog Token: %d", msg->dialog_token); in p2p_parse()
449 return p2p_parse_ies(data + 1, len - 1, msg); in p2p_parse()
457 void p2p_parse_free(struct p2p_message *msg) in p2p_parse_free() argument
459 wpabuf_free(msg->p2p_attributes); in p2p_parse_free()
460 msg->p2p_attributes = NULL; in p2p_parse_free()
461 wpabuf_free(msg->wps_attributes); in p2p_parse_free()
462 msg->wps_attributes = NULL; in p2p_parse_free()
464 wpabuf_free(msg->wfd_subelems); in p2p_parse_free()
465 msg->wfd_subelems = NULL; in p2p_parse_free()
618 struct p2p_message msg; in p2p_attr_text() local
622 os_memset(&msg, 0, sizeof(msg)); in p2p_attr_text()
623 if (p2p_parse_p2p_ie(data, &msg)) in p2p_attr_text()
626 if (msg.capability) { in p2p_attr_text()
630 msg.capability[0], msg.capability[1]); in p2p_attr_text()
636 if (msg.pri_dev_type) { in p2p_attr_text()
640 wps_dev_type_bin2str(msg.pri_dev_type, in p2p_attr_text()
649 msg.device_name); in p2p_attr_text()
654 if (msg.p2p_device_addr) { in p2p_attr_text()
657 MAC2STR(msg.p2p_device_addr)); in p2p_attr_text()
664 msg.config_methods); in p2p_attr_text()
669 ret = p2p_group_info_text(msg.group_info, msg.group_info_len, in p2p_attr_text()
681 struct p2p_message msg; in p2p_get_cross_connect_disallowed() local
683 os_memset(&msg, 0, sizeof(msg)); in p2p_get_cross_connect_disallowed()
684 if (p2p_parse_p2p_ie(p2p_ie, &msg)) in p2p_get_cross_connect_disallowed()
687 if (!msg.manageability) in p2p_get_cross_connect_disallowed()
690 return !(msg.manageability[0] & P2P_MAN_CROSS_CONNECTION_PERMITTED); in p2p_get_cross_connect_disallowed()
696 struct p2p_message msg; in p2p_get_group_capab() local
698 os_memset(&msg, 0, sizeof(msg)); in p2p_get_group_capab()
699 if (p2p_parse_p2p_ie(p2p_ie, &msg)) in p2p_get_group_capab()
702 if (!msg.capability) in p2p_get_group_capab()
705 return msg.capability[1]; in p2p_get_group_capab()
711 struct p2p_message msg; in p2p_get_go_dev_addr() local
713 os_memset(&msg, 0, sizeof(msg)); in p2p_get_go_dev_addr()
714 if (p2p_parse_p2p_ie(p2p_ie, &msg)) in p2p_get_go_dev_addr()
717 if (msg.p2p_device_addr) in p2p_get_go_dev_addr()
718 return msg.p2p_device_addr; in p2p_get_go_dev_addr()
719 if (msg.device_id) in p2p_get_go_dev_addr()
720 return msg.device_id; in p2p_get_go_dev_addr()