Permalink
Switch branches/tags
Nothing to show
Commits on Aug 11, 2011
  1. Update examples and TODO

    msantos committed Aug 11, 2011
  2. Error out if the interface does not come up

    msantos committed Aug 11, 2011
    Wait for 2 seconds for the interface to become ready. On my netbook,
    getting the datalink type will sometimes loop forever. When I ran tcpdump
    on the interface there weren't any frames received. The interface seems
    to be stuck.
    
    Bringing the interface up and down, etc, didn't help but rebooting did.
    
    Had something to do with the Ubuntu network manager running at the same
    time the interface was being toggled into monitor mode. Usually this
    works ok but it's better to shut down the network manager first:
    
    service network-manager stop
  3. Temp fix: ignore 4 trailing bytes of frame

    msantos committed Aug 11, 2011
    Some drivers append 4 extra bytes to the frame. Possibly this is the FCS
    (which is 4 bytes). Check later if all the frames have 4 extra bytes,
    but for now, ignore the trailing bytes in the management frame.
Commits on Aug 9, 2011
  1. Add support for datalink types

    msantos committed Aug 9, 2011
    Convert wierl_monitor to a gen_server to support DLTs beside the radiotap
    format. PRISM headers are still used by some drivers.
    
    Carry the header type in a gen_server, since on Linux the DLT is put in
    the hatype field of the struct sockaddr_ll for each packet (for BSDs,
    the DLT is retrieved using an ioctl on the fd (BIOCGDLT). We'll need to
    support this as well when we port to Mac OS X). This simplifies cleanup
    of fd's on exit as well.
    
    Remove close/2,3. Terminating the gen_server only closes the socket,
    the mode is not changed. Add mode/1 to change the interface operating
    mode. mode/1 is slightly broken, since it needs to lookup up the
    interface name in the gen_server state, which will already have been
    terminated.
  2. Remove debugs

    msantos committed Aug 9, 2011
Commits on Aug 8, 2011
Commits on Aug 7, 2011
  1. Support mode change on some devices

    msantos committed Aug 7, 2011
    Some drivers apparently need the device to be up before doing a mode
    change.
Commits on Aug 2, 2011
  1. Rename radiotap record field

    msantos committed Aug 2, 2011
  2. Create radiotap headers from records

    msantos committed Aug 1, 2011
    Convert radiotap records into binary format. Works with records that
    have been returned from header/1. Some changes needed to allow creating
    records by hand (e.g., ensure padding for alignment).
    
    Futher cleanup: internal functions are not symmetrical, the bitmap
    handling needs to be improved.
Commits on Aug 1, 2011
  1. Clarify guard

    Michael Santos committed Aug 1, 2011
Commits on Jul 31, 2011
  1. README cleanup

    Michael Santos committed Jul 31, 2011
  2. Tag correct results from ioctl

    Michael Santos committed Jul 31, 2011
Commits on Jul 21, 2011
  1. Do not return the interface index

    msantos committed Jul 21, 2011
    If it's needed, use packet:ifindex/2.
Commits on Jul 17, 2011
  1. Add function to encoding a complete frame

    msantos committed Jul 17, 2011
    Add a function to encode a complete frame. Since the radiotap
    header is a pseudo-header, it's optional to include it.
  2. Remove unkown elements from encoding

    msantos committed Jul 17, 2011
    Remove the unknown element types from the management body encoding.
    Most of these elements do not have a specified type (like timestamp)
    and are handled by the calling function.
    
    The check for a known type is weak: we look for an integer rather than
    a tuple ({unsupported, type}).
  3. Convenience function to restore device mode

    msantos committed Jul 17, 2011
    Close can optionally put the interface back into infrasctructure mode
    when the socket is closed.
  4. Veriy monitor mode succeeds

    msantos committed Jul 17, 2011
    Crash if putting the interface into monitor mode fails.
Commits on Jul 13, 2011
  1. Include frame body in the record

    msantos committed Jul 13, 2011
    Include the frame body in the management frame type record. Support
    converting between the record and binary encoding.
Commits on Jul 12, 2011
  1. Simplify radiotap header

    msantos committed Jul 12, 2011
    Include the optional capture fields (and unhandled capture fields)
    in the radiotap header, rather than returning a tuple.
  2. Block ack fields

    msantos committed Jul 12, 2011
Commits on Jul 10, 2011
  1. management frame: action

    msantos committed Jul 10, 2011