145 points by vitalnodo 22 hours ago | 10 comments
nxobject 5 hours ago
I see “parsing” and I think: I’ve always wanted to try out SOTA fuzzers - I guess I have a project with what’s left of the weekend!
evilmonkey19 21 hours ago
Perhaps a stupid question, but the last release and commit is from 2023. Did something happen to the project?
m00x 13 hours ago
Likely complete to the point that the author needed it to be.
taminka 9 hours ago
that's just called having a complete project in a stable language lol, not everything needs a change every week to function well...
tredre3 1 hour ago
The project isn't complete by their own admission: https://libwifi.so/features/

If the scope has changed they should remove the planned features. But until then, it's perfectly logical to assume that something happened and the project is incomplete...

Lammy 20 hours ago
Please point to which 802.11 standard has changed since 2023 that you would like to see supported: https://ieeexplore.ieee.org/browse/standards/get-program/pag...
zamadatix 20 hours ago
Before listing a bunch of specifics about newer changes I'm guessing you don't actually care about, some of the basic things at https://libwifi.so/features/ would be good to complete first before the newer stuff since the last update was 2023, not the last completed feature level (Wi-Fi is enormous).

There also seem to be some open bug reports despite the low level of usage e.g. https://github.com/libwifi/libwifi/issues/24.

karlgkk 15 hours ago
I would point to a few standards on there which have open bugs around following the standard.

That would be a good start.

ericpauley 4 hours ago
File extension reference notwithstanding, what an awful choice of vanity domain name. Depending on where you look .so isn’t even allowed to be used by non-Somali affiliates, and there are horror stories online of arbitrary non-renewals.
RossBencina 20 hours ago
Nice.

> int ret = libwifi_get_wifi_frame(&frame, data, data_len, got_radiotap);

> ...

> int ret = libwifi_parse_beacon(&bss, &frame);

I haven't looked into the implementation, but if I understand correctly, the above code (extracted from the example on the home page) implies that the unparsed segment of `data` is either (1) copied into `frame` or (2) a pointer-span in `frame` references the unparsed segment of `data`. I wonder why either of these approaches have been taken. I imagine that the pointer-span could be computed (possibly even statically) inside `libwifi_parse_beacon` and `data` could also be passed:

> libwifi_parse_beacon(&bss, &frame, data);

This would shrink the size of `frame` and achieve zero-copy. Or perhaps I'm missing something.

fooblaster 13 hours ago
what's this for?
beardyw 8 hours ago
If you need to process individual WiFi frames, of which there are many formats, each one structured with a lot of ifs and buts to only send what is necessary.
17 hours ago
17 hours ago
mdhb 13 hours ago
Google’s Rule of Two [1] jumped out to me the moment I saw this combined with what seems to be a group of semi-anonymous authors on GitHub and this project while cool and a huge amount of work is also a bit of a yikes I think.

I know the common thinking is that “Fuchsia is dead” (it’s not check the repo it’s under heavy daily development) but it’s developing a new Rust based networking stack that’s really worth digging into [2] if that’s your idea of fun.

[1] https://chromium.googlesource.com/chromium/src/+/master/docs...

[2] https://fuchsia.googlesource.com/fuchsia/+log/refs/heads/mai...

8 hours ago
throw1168b23 17 hours ago
802.11 IPV4 libraries in glibc shows LC_TIME=C=UTF-8 in /etc/profile and locale.config