11s mesh path setup problem

Bernhard Schmidt bschmidt at freebsd.org
Wed Jan 11 19:03:40 UTC 2012


On Wednesday 11 January 2012 18:23:29 Adrian Chadd wrote:
> Hi!
> 
> I've just done a bit of a code review. Here are my comments:
> 
> * ether_sprintf() can't be implemented the way you've implemented it -
> it just won't work at all in a multithreaded, concurrent environment.
> We'll have to find an alternative way.
> 
> Maybe something like:
> 
> char *
> ether_sprintf2(const u_char *ap, char *buf, int len)
> {
>     .. do things to buf, rather than the static buf.
> }
> 
> Then maybe this'd work:
> 
> char a[32], b[32];
> IEEE80211_NOTE(..., ether_sprintf2(addr1, a, 32), ether_sprintf2(addr2, a, 32));
> 
> does that make sense?

Isn't there an example in net80211 with %D?
printf("%6D %6D", addr1, ":", addr2, ":"); 

The saner alternative is to call printf() multiple times, see ieee80211_dump_pkt() as an example.

-- 
Bernhard


More information about the freebsd-wireless mailing list