+#ifdef CONFIG_P2P_MANAGER
+ if (hapd->conf->p2p & P2P_MANAGE) {
+ struct wpabuf *a;
+
+ a = wpabuf_alloc(100 + (beacon ? wpabuf_len(beacon) : 0));
+ if (a) {
+ u8 *start, *p;
+ if (beacon)
+ wpabuf_put_buf(a, beacon);
+ if (beacon != hapd->wps_beacon_ie)
+ wpabuf_free(beacon);
+ start = wpabuf_put(a, 0);
+ p = hostapd_eid_p2p_manage(hapd, start);
+ wpabuf_put(a, p - start);
+ beacon = a;
+ }
+
+ a = wpabuf_alloc(100 + (proberesp ? wpabuf_len(proberesp) :
+ 0));
+ if (a) {
+ u8 *start, *p;
+ if (proberesp)
+ wpabuf_put_buf(a, proberesp);
+ if (proberesp != hapd->wps_probe_resp_ie)
+ wpabuf_free(proberesp);
+ start = wpabuf_put(a, 0);
+ p = hostapd_eid_p2p_manage(hapd, start);
+ wpabuf_put(a, p - start);
+ proberesp = a;
+ }
+ }
+#endif /* CONFIG_P2P_MANAGER */
+