To clarify, I'm using (at present) the implementation from http://airscan.googlecode.com/svn-history/r2/trunk/radiotap-parser.c - not being an expert in such things it looks like the use of le32_to_cpu is an indication that this is designed to be used in userspace, but still - the iteration function is still returning `1'.

Lee Hambley
--
http://lee.hambley.name/+49 (0) 170 298 5667


On 10 May 2013 16:40, Lee Hambley <lee.hambley-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> Hi Johannes,
>
> I hadn't even considered that, I'll have to go and have a look for the userspace implementation of those functions, I'd suppose that the ones I have pulled in are probably from the kernel if they are returning `1`.
>
> Are these functions included with any of the radiotap (tcpdump, libpcap in particular) codebases? Or something similar.
>
> Thanks, good to know I did manage to register myself for the list correctly!
>
> Lee Hambley
> --
> http://lee.hambley.name/
> +49 (0) 170 298 5667
>
>
> On 10 May 2013 15:32, Johannes Berg <johannes-cdvu00un1VgdHxzADdlk8Q@public.gmane.org> wrote:
>>
>> On Fri, 2013-05-10 at 14:55 +0200, Lee Hambley wrote:
>>
>> > int ret = ieee80211_radiotap_iterator_init(&rti, rth, rth->it_len);
>> > while(!ret) {
>> >   printf("Itteration: %d\n", count++);
>> >   ret = ieee80211_radiotap_iterator_next(&rti);
>>
>> >
>> > There's limited scope for having screwed something up in that code, I
>> > think, I'm confused by the `1' being returned from
>> > `ieee80211_radiotap_iterator_init' which according to the
>> > implenentation doesn't seem like an error condition in the
>> > implementation http://lxr.free-electrons.com/source/net/wireless/radiotap.c#L95
>>
>> I think you're confusing the userspace and Linux kernel implementation,
>> though they're very similar. In any case,
>> ieee80211_radiotap_iterator_next() cannot return 1, unless one of the
>> error values is defined to -1 (it returns -EINVAL and a few others)
>>
>> johannes
>>
>>
>