Wifi::WpaCtrl - wpa_supplicant/hostapd control interface library


Wifi-WpaCtrl documentation  | view source Contained in the Wifi-WpaCtrl distribution.

Index


NAME

Top

Wifi::WpaCtrl - wpa_supplicant/hostapd control interface library

SYNOPSIS

Top

  use Wifi::WpaCtrl;

  $wpa = Wifi::WpaCtrl->new('/path/to/socket') or die;
  $reply = $wpa->request('PING');

DESCRIPTION

Top

This module is a wrapper around wpa_ctrl.[ch] supplied by wpa_supplicant. It may be used to communicate with wpa_supplicant/hostapd in various ways.

METHODS

Top

new

  $wpa = Wifi::WpaCtrl->new('/path/to/socket');

This class method tries to open a control interface connection to wpa_supplicant/hostap. The first argument is the path to the socket to connect to (usually /var/run/wpa_supplicant or /var/run/hostap). This argument may be omited if UDP sockets are used (Win32). It returns a new Wifi::WpaCtrl instance on success or undef on failure.

close

  $wpa->close();

Closes the control interface. Returns nothing useful. You don't need to call this method yourself usually. It'll get executed automatically when Perl tries to free the Wifi::WpaCtrl instance when it leaves its scope.

request

  my $reply = $wpa->request('PING');

This method send a command which is given as the first argument to wpa_supplicant/hostapd. On success it returns the recieved reply. It may also return undef on error (send or recieve failed). On timeout (2 seconds) it croaks. This should never happen, though, as the only reason for that may be wpa_supplicant/hostapd sending a message at the same time the request method is called. This could happen if you have used attach on the same Wifi::WpaCtrl instance to register it as a monitor for event messages. You should never do that. Instead you can create two Wifi::WpaCtrl instances. One for sending requests and one for recieving events.

attach

  $wpa->attach();

Register as an event monitor for the control interface. Returns 1 on success, 0 on failure or undef on timeout.

detach

  $wpa->detach();

Unregister event monitor from the control interface. Returns 1 on success, 0 on failure or undef on timeout.

recv

  my $reply = $wpa->recv();

Receive a pending control interface message. Returns the recieved message on success or undef on failure.

pending

  $is_pending = $wpa->pending();

Check whether there are pending event messages. Returns non-zero if there are pending messages.

get_fd

  my $fd = $wpa->get_fd();

Get file descriptor used by the control interface.

AUTHOR

Top

Florian Ragwitz <rafl@debian.org>

COPYRIGHT AND LICENSE

Top


Wifi-WpaCtrl documentation  | view source Contained in the Wifi-WpaCtrl distribution.