[PATCH 1/3] wifi_display: Add a utility function to get the sub-elements as IEs

Tomasz Bursztyka tomasz.bursztyka at linux.intel.com
Tue Aug 26 03:02:39 EDT 2014


This will be useful for DBus API to expose current WFD configuration.
---
 wpa_supplicant/wifi_display.c | 26 ++++++++++++++++++++++++++
 wpa_supplicant/wifi_display.h |  1 +
 2 files changed, 27 insertions(+)

diff --git a/wpa_supplicant/wifi_display.c b/wpa_supplicant/wifi_display.c
index b6f9236..dfda8f1 100644
--- a/wpa_supplicant/wifi_display.c
+++ b/wpa_supplicant/wifi_display.c
@@ -35,6 +35,32 @@ void wifi_display_deinit(struct wpa_global *global)
 	}
 }
 
+struct wpabuf *wifi_display_get_wfd_ie(struct wpa_global *global)
+{
+	struct wpabuf *ie;
+	size_t len;
+	int i;
+
+	if (global->p2p == NULL)
+		return NULL;
+
+	len = 0;
+	for (i = 0; i < MAX_WFD_SUBELEMS; i++) {
+		if (global->wfd_subelem[i])
+			len += wpabuf_len(global->wfd_subelem[i]);
+	}
+
+	ie = wpabuf_alloc(len);
+	if (ie == NULL)
+		return NULL;
+
+	for (i = 0; i < MAX_WFD_SUBELEMS; i++) {
+		if (global->wfd_subelem[i])
+			wpabuf_put_buf(ie, global->wfd_subelem[i]);
+	}
+
+	return ie;
+}
 
 static int wifi_display_update_wfd_ie(struct wpa_global *global)
 {
diff --git a/wpa_supplicant/wifi_display.h b/wpa_supplicant/wifi_display.h
index 7554817..67d8bc1 100644
--- a/wpa_supplicant/wifi_display.h
+++ b/wpa_supplicant/wifi_display.h
@@ -13,6 +13,7 @@
 int wifi_display_init(struct wpa_global *global);
 void wifi_display_deinit(struct wpa_global *global);
 void wifi_display_enable(struct wpa_global *global, int enabled);
+struct wpabuf *wifi_display_get_wfd_ie(struct wpa_global *global);
 int wifi_display_subelem_set(struct wpa_global *global, char *cmd);
 int wifi_display_subelem_get(struct wpa_global *global, char *cmd,
 			     char *buf, size_t buflen);
-- 
1.8.5.5



More information about the HostAP mailing list