Lines Matching refs:msg

19 			       struct p2p_message *msg)
32 msg->capability = data;
43 msg->device_id = data;
45 MAC2STR(msg->device_id));
53 msg->go_intent = data;
63 msg->status = data;
77 msg->listen_channel = data;
94 msg->operating_channel = data;
106 msg->channel_list = data;
107 msg->channel_list_len = len;
111 msg->channel_list, msg->channel_list_len);
114 msg->group_info = data;
115 msg->group_info_len = len;
124 msg->p2p_device_info = data;
125 msg->p2p_device_info_len = len;
127 msg->p2p_device_addr = pos;
129 msg->config_methods = WPA_GET_BE16(pos);
131 msg->pri_dev_type = pos;
133 msg->num_sec_dev_types = *pos++;
134 if (msg->num_sec_dev_types * 8 > data + len - pos) {
138 pos += msg->num_sec_dev_types * 8;
158 os_memcpy(msg->device_name, pos, nlen);
159 msg->device_name[nlen] = '\0';
161 if (msg->device_name[i] == '\0')
163 if (msg->device_name[i] > 0 &&
164 msg->device_name[i] < 32)
165 msg->device_name[i] = '_';
170 MAC2STR(msg->p2p_device_addr),
171 wps_dev_type_bin2str(msg->pri_dev_type, devtype,
173 msg->device_name, msg->config_methods);
181 msg->config_timeout = data;
191 msg->intended_addr = data;
193 MACSTR, MAC2STR(msg->intended_addr));
201 msg->group_bssid = data;
203 MAC2STR(msg->group_bssid));
211 msg->group_id = data;
212 msg->group_id_len = len;
214 MACSTR, MAC2STR(msg->group_id));
216 msg->group_id + ETH_ALEN,
217 msg->group_id_len - ETH_ALEN);
225 msg->invitation_flags = data;
235 msg->manageability = data;
245 msg->noa = data;
246 msg->noa_len = len;
255 msg->ext_listen_timing = data;
258 WPA_GET_LE16(msg->ext_listen_timing),
259 WPA_GET_LE16(msg->ext_listen_timing + 2));
267 msg->minor_reason_code = data;
269 *msg->minor_reason_code);
277 msg->oob_go_neg_channel = data;
297 * @msg: Buffer for returning parsed attributes
300 * Note: Caller is responsible for clearing the msg data structure before
303 int p2p_parse_p2p_ie(const struct wpabuf *buf, struct p2p_message *msg)
326 if (p2p_parse_attribute(pos[0], pos + 3, attr_len, msg))
335 static int p2p_parse_wps_ie(const struct wpabuf *buf, struct p2p_message *msg)
343 if (attr.dev_name && attr.dev_name_len < sizeof(msg->device_name) &&
344 !msg->device_name[0])
345 os_memcpy(msg->device_name, attr.dev_name, attr.dev_name_len);
347 msg->wps_config_methods =
350 msg->wps_config_methods);
353 msg->dev_password_id = WPA_GET_BE16(attr.dev_password_id);
355 msg->dev_password_id);
356 msg->dev_password_id_present = 1;
360 msg->wps_pri_dev_type = attr.primary_dev_type;
362 wps_dev_type_bin2str(msg->wps_pri_dev_type, devtype,
366 msg->wps_sec_dev_type_list = attr.sec_dev_type_list;
367 msg->wps_sec_dev_type_list_len = attr.sec_dev_type_list_len;
371 msg->wps_vendor_ext[i] = attr.vendor_ext[i];
372 msg->wps_vendor_ext_len[i] = attr.vendor_ext_len[i];
375 msg->manufacturer = attr.manufacturer;
376 msg->manufacturer_len = attr.manufacturer_len;
377 msg->model_name = attr.model_name;
378 msg->model_name_len = attr.model_name_len;
379 msg->model_number = attr.model_number;
380 msg->model_number_len = attr.model_number_len;
381 msg->serial_number = attr.serial_number;
382 msg->serial_number_len = attr.serial_number_len;
384 msg->oob_dev_password = attr.oob_dev_password;
385 msg->oob_dev_password_len = attr.oob_dev_password_len;
395 * @msg: Buffer for returning parsed attributes
398 * Note: Caller is responsible for clearing the msg data structure before
404 int p2p_parse_ies(const u8 *data, size_t len, struct p2p_message *msg)
410 msg->ds_params = elems.ds_params;
412 msg->ssid = elems.ssid - 2;
414 msg->wps_attributes = ieee802_11_vendor_ie_concat(data, len,
416 if (msg->wps_attributes &&
417 p2p_parse_wps_ie(msg->wps_attributes, msg)) {
418 p2p_parse_free(msg);
422 msg->p2p_attributes = ieee802_11_vendor_ie_concat(data, len,
424 if (msg->p2p_attributes &&
425 p2p_parse_p2p_ie(msg->p2p_attributes, msg)) {
427 if (msg->p2p_attributes)
429 msg->p2p_attributes);
430 p2p_parse_free(msg);
436 msg->wfd_subelems = ieee802_11_vendor_ie_concat(
449 * @msg: Buffer for returning parsed attributes
455 int p2p_parse(const u8 *data, size_t len, struct p2p_message *msg)
457 os_memset(msg, 0, sizeof(*msg));
463 msg->dialog_token = data[0];
464 wpa_printf(MSG_DEBUG, "P2P: * Dialog Token: %d", msg->dialog_token);
466 return p2p_parse_ies(data + 1, len - 1, msg);
471 size_t p2p_len, struct p2p_message *msg)
473 os_memset(msg, 0, sizeof(*msg));
475 msg->wps_attributes = wpabuf_alloc_copy(wsc, wsc_len);
476 if (msg->wps_attributes &&
477 p2p_parse_wps_ie(msg->wps_attributes, msg)) {
478 p2p_parse_free(msg);
482 msg->p2p_attributes = wpabuf_alloc_copy(p2p, p2p_len);
483 if (msg->p2p_attributes &&
484 p2p_parse_p2p_ie(msg->p2p_attributes, msg)) {
486 if (msg->p2p_attributes)
488 msg->p2p_attributes);
489 p2p_parse_free(msg);
499 * @msg: Parsed attributes
501 void p2p_parse_free(struct p2p_message *msg)
503 wpabuf_free(msg->p2p_attributes);
504 msg->p2p_attributes = NULL;
505 wpabuf_free(msg->wps_attributes);
506 msg->wps_attributes = NULL;
508 wpabuf_free(msg->wfd_subelems);
509 msg->wfd_subelems = NULL;
662 struct p2p_message msg;
666 os_memset(&msg, 0, sizeof(msg));
667 if (p2p_parse_p2p_ie(data, &msg))
670 if (msg.capability) {
674 msg.capability[0], msg.capability[1]);
680 if (msg.pri_dev_type) {
684 wps_dev_type_bin2str(msg.pri_dev_type,
693 msg.device_name);
698 if (msg.p2p_device_addr) {
701 MAC2STR(msg.p2p_device_addr));
708 msg.config_methods);
713 ret = p2p_group_info_text(msg.group_info, msg.group_info_len,
725 struct p2p_message msg;
727 os_memset(&msg, 0, sizeof(msg));
728 if (p2p_parse_p2p_ie(p2p_ie, &msg))
731 if (!msg.manageability)
734 return !(msg.manageability[0] & P2P_MAN_CROSS_CONNECTION_PERMITTED);
740 struct p2p_message msg;
742 os_memset(&msg, 0, sizeof(msg));
743 if (p2p_parse_p2p_ie(p2p_ie, &msg))
746 if (!msg.capability)
749 return msg.capability[1];
755 struct p2p_message msg;
757 os_memset(&msg, 0, sizeof(msg));
758 if (p2p_parse_p2p_ie(p2p_ie, &msg))
761 if (msg.p2p_device_addr)
762 return msg.p2p_device_addr;
763 if (msg.device_id)
764 return msg.device_id;