On Wed, Oct 09, 2024 at 10:15:02AM +0200, Marek Puzyniak wrote: > Occasionally, external applications require information about AP > configurations and capabilities. > The optimal source for this is the beacon frame content. To support this need, > a new raw command is being introduced: DUMP_BEACON. > > Using wpa_cli or hostapd_cli to execute this command results in a hex > dump of the beacon content. > > hostapd_cli -i wlxxx raw DUMP_BEACON > 80000000ffffffffffff... > dd180050f2020101010003a4000027a4000042435e0062322f007f080000000000000040 Thanks, applied with cleanup and fixes. > diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c > +static int hostapd_ctrl_iface_dump_beacon(struct hostapd_data *hapd, > + char *buf, size_t buflen) This needs to be within ifdef NEED_AP_MLME to avoid breaking builds. > + /* calculate required buffer size to store beacon hex dump */ > + /* beacon ies, first part */ > + mgmt = (struct ieee80211_mgmt*)beacon.head; > + ies_start = &mgmt->u.beacon.variable[0]; > + ies_len = beacon.head_len - (ies_start - beacon.head); There is not really any need for this complexity since beacon.head contains the header and those IEs and can be printed as a single block. > + ret = wpa_snprintf_hex(pos, end - pos, beacon.head, beacon.head_len); > + pos += ret; Which is actually done here.. > + /* beacon ies, first part */ > + ret = wpa_snprintf_hex(pos, end - pos, ies_start, ies_len); > + pos += ret; And this would just print duplicated information.. > + /* beacon extra ie */ > + ret = wpa_snprintf_hex(pos, end - pos, beacon.beacon_ies, beacon.beacon_ies_len); > + pos += ret; And this is also duplication of IEs. > + ret = os_snprintf(pos, end - pos, "\n"); There should not be extra \n at the end of control interface command output other than cases involving multiple rows of information. -- Jouni Malinen PGP id EFC895FA _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap