What's the correct way to read a STATUS response from the hostapd control interface?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm a user of the wifi-presence openwrt package. It talks to hostapd
over the control socket to know when people connect/disconnect from a
given access point.

My home networks recently grew to the point where the hostapd response
to the STATUS message is larger than 1024 bytes, which causes
wifi-presense to fail to parse the response. I filed a bug with
details here: https://github.com/awilliams/wifi-presence/issues/30.

What I don't understand is how to fix this bug. wifi-presence can
increase its buffer size, but it seems to me that a better
implementation would loop and keep reading until it gets to the end of
hostapd's response. However, I haven't been able to find a mechanism
in the protocol that allows a client to know if it has read a full
response. I'd expect protocols like this to have a "content length"
header, or a special delimiter that indicates the end of a response.

I've read through the source code of the example program
(hostapd/hostapd_cli.c), which hardcodes a buffer length of 4096 in
_wpa_ctrl_command:

static int _wpa_ctrl_command(struct wpa_ctrl *ctrl, const char *cmd, int print)
{
char buf[4096];

What's the correct way to handle this?

Thanks,
Jeremy

_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux