dbus-handler.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <glib.h>
#include <net/ethernet.h>
#include <linux/socket.h>
#include <gconf/gconf-client.h>
#include <osso-ic-dbus.h>
#include <dbus/dbus.h>
#include <eap-dbus.h>
#include <wlancond-dbus.h>
#include "log.h"
#include "dbus.h"
#include "dbus-helper.h"
#include "dbus-handler.h"
#include "common.h"
#include "wpa.h"

Include dependency graph for dbus-handler.c:

Go to the source code of this file.

Data Structures

struct  method_handler_t

Defines

#define DBUS_API_SUBJECT_TO_CHANGE
#define WLANCOND_SHUTDOWN_DELAY   4
#define WLANCOND_CONNECT_TIMEOUT   10
#define WLANCOND_SCAN_TIMEOUT   8
#define WLANCOND_RESCAN_DELAY   1
#define WLAN_PREFIX_STR   "wlan"
#define DEBUG_KEY

Typedefs

typedef DBusHandlerResult(* handler_func )(DBusMessage *message, DBusConnection *connection)

Functions

int socket_open (void)
void init_iwreq (struct iwreq *req)
static int get_own_mac (void)
static gint get_gconf_int (const gchar *path)
void update_own_ie (unsigned char *wpa_ie, guint wpa_ie_len)
guint get_encryption_info (void)
int init_dbus_handler (void)
int clean_dbus_handler (void)
void mode_change (const char *mode)
static DBusHandlerResult icd_check_signal_dbus (DBusMessage *message)
static gboolean in_flight_mode (void)
void set_wlan_signal (gboolean high_or_low)
void remove_roam_scan_timer (void)
void remove_connect_timer (void)
static void remove_wlan_if_timer (void)
void remove_scan_timer (void)
static gboolean wlan_connect_timer_cb (void *data)
static gboolean wlan_scan_cb (void *data)
static gboolean wlan_if_down_cb (void *data)
int mlme_command (guchar *addr, guint16 cmd, guint16 reason_code)
static int set_mode (guint32 mode)
static int set_wep_keys (struct connect_params_t *conn)
int set_essid (char *essid, int essid_len)
int set_bssid (unsigned char *bssid)
void set_wlan_state (int new_state, int send_signal, force_t force)
guint get_wlan_state (void)
void set_scan_state (guint new_state)
guint get_scan_state (void)
guint get_mode (void)
gboolean set_power_state (guint new_state, int sock)
static int init_if (int sock)
static int set_we_name (int sock, char *name, char *args[], int count)
int get_we_device_name (void)
int set_interface_state (int sock, int dir, short flags)
static gboolean set_tx_power (guint power, int sock)
static int update_algorithms (guint32 encryption)
void clean_roam_cache (void)
void clear_wpa_mode (void)
gboolean get_wpa_mode (void)
static gint compare_pmk_entry (gconstpointer a, gconstpointer b)
static void add_to_pmksa_cache (unsigned char *pmkid, unsigned char *mac)
unsigned char * find_pmkid_from_pmk_cache (unsigned char *mac)
int scan (gchar *ssid, int ssid_len, gboolean add_timer)
static int set_freq (int channel)
static void init_conn_params (struct connect_params_t *conn_params)
void clear_wpa_keys (unsigned char *bssid)
static int check_connect_arguments (struct connect_params_t *conn, char *ssid, unsigned char **key)
static DBusHandlerResult settings_and_connect_request (DBusMessage *message, DBusConnection *connection)
int associate (struct scan_results_t *scan_results)
static DBusHandlerResult scan_request (DBusMessage *message, DBusConnection *connection)
static int network_compare (gconstpointer a, gconstpointer b)
static gint compare_scan_entry (gconstpointer a, gconstpointer b)
static void add_to_roam_cache (struct scan_results_t *scan_results)
gboolean remove_from_roam_cache (unsigned char *bssid)
gboolean decrease_signal_in_roam_cache (unsigned char *bssid)
static int check_group_cipher (guint32 c1, guint32 c2)
static int check_ciphers (guint32 c1, guint32 c2)
static gboolean wlan_roam_scan_cb (void *data)
void schedule_scan (guint seconds)
static void reschedule_scan (void)
static gboolean check_capabilities (struct scan_results_t *scan_results, struct connect_params_t *conn)
struct scan_results_t * find_connection (GSList *ap_list, struct connect_params_t *conn, gboolean update_roam_cache)
static dbus_uint32_t find_adhoc_channel (GSList *ap_list)
int find_connection_and_associate (GSList *scan_results, gboolean update_roam_cache, gboolean create_new_adhoc)
static void registrar_error_signal (void)
static gboolean rescan (void *data)
static void connect_from_scan_results (GSList *scan_results)
int scan_results_ioctl (int ifindex, GSList **scan_results_save)
gboolean ask_scan_results (int ifindex)
static DBusHandlerResult disconnect_request (DBusMessage *message, DBusConnection *connection)
static DBusHandlerResult disassociate_request (DBusMessage *message, DBusConnection *connection)
static DBusHandlerResult status_request (DBusMessage *message, DBusConnection *connection)
static DBusHandlerResult interface_request (DBusMessage *message, DBusConnection *connection)
static DBusHandlerResult connection_status_request (DBusMessage *message, DBusConnection *connection)
static DBusHandlerResult set_pmksa_request (DBusMessage *message, DBusConnection *connection)
static DBusHandlerResult set_powersave_request (DBusMessage *message, DBusConnection *connection)
static void wpa_ie_push_cb (DBusPendingCall *pending, void *user_data)
int wpa_ie_push (unsigned char *ap_mac_addr, unsigned char *ap_wpa_ie, int ap_wpa_ie_len, char *ssid, int ssid_len, unsigned int authentication_type)
int wpa_mic_failure_event (dbus_bool_t key_type, dbus_bool_t is_fatal)
int associate_supplicant (void)
static void disassociate_cb (DBusPendingCall *pending, void *user_data)
int disassociate_eap (void)
DBusHandlerResult wlancond_req_handler (DBusConnection *connection, DBusMessage *message, void *user_data)
void init_dbus_handlers (DBusConnection *connection)
void destroy_dbus_handlers (DBusConnection *connection)

Variables

static char * scan_name_cache = NULL
static char * connect_name_cache = NULL
static int wlan_socket = -1
struct wlan_status_t wlan_status
static gboolean _flight_mode = FALSE
static gboolean power_down_after_scan = FALSE
static dbus_bool_t saved_inactivity = FALSE
static guint wlan_if_down_timer_id = 0
static guint wlan_connect_timer_id = 0
static guint powersave = WLANCOND_SHORT_CAM
static method_handler_t handlers []
static DBusObjectPathVTable wlancond_req_vtable


Detailed Description

Copyright (C) 2004-2008 Nokia Corporation. All rights reserved.

Author:
Janne Ylälehto <janne.ylalehto@nokia.com>
Portions of this file are Copyright (c) 1997-2002 Jean Tourrilhes <jt@hpl.hp.com>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

Definition in file dbus-handler.c.


Function Documentation

static void add_to_pmksa_cache ( unsigned char *  pmkid,
unsigned char *  mac 
) [static]

Add PMKID to PMKSA cache.

Parameters:
pmkid PMKID to add.
mac MAC address associated to PMKID.

Definition at line 1109 of file dbus-handler.c.

Referenced by set_pmksa_request().

static void add_to_roam_cache ( struct scan_results_t *  scan_results  )  [static]

Add scan results to roam cache.

Parameters:
scan_results Scan results to add.

Definition at line 1781 of file dbus-handler.c.

Referenced by find_connection().

gboolean ask_scan_results ( int  ifindex  ) 

Scan results request.

Parameters:
ifindex Interface index.
Returns:
status.

Definition at line 2360 of file dbus-handler.c.

References clean_roam_cache(), clean_scan_results(), connect_from_scan_results(), get_scan_state(), get_wlan_state(), network_compare(), scan_results_ioctl(), send_dbus_scan_results(), set_interface_state(), set_scan_state(), set_wlan_state(), and socket_open().

Referenced by print_event_token().

Here is the call graph for this function:

int associate ( struct scan_results_t *  scan_results  ) 

Associate function to associate to selected access point.

Parameters:
scan_results Scan results.
Returns:
status.

Definition at line 1541 of file dbus-handler.c.

References clear_wpa_keys(), get_wpa_mode(), set_bssid(), set_encryption_method(), set_essid(), set_freq(), set_wep_keys(), update_algorithms(), wlan_connect_timer_cb(), and wpa_ie_push().

Referenced by find_connection_and_associate().

Here is the call graph for this function:

int associate_supplicant ( void   ) 

Associate EAP D-BUS request.

Returns:
status.

Definition at line 2983 of file dbus-handler.c.

Referenced by handle_wap_event().

static gboolean check_capabilities ( struct scan_results_t *  scan_results,
struct connect_params_t *  conn 
) [static]

Check capabilities from scan results.

Parameters:
scan_results Scan results.
conn Connection paramters.
Returns:
status.

Definition at line 1967 of file dbus-handler.c.

References check_ciphers().

Referenced by find_connection().

Here is the call graph for this function:

static int check_ciphers ( guint32  c1,
guint32  c2 
) [static]

Compare ciphers.

Parameters:
c1 Cipher 1.
c2 Cipher 2.
Returns:
1 if matches.

Definition at line 1888 of file dbus-handler.c.

References check_group_cipher().

Referenced by check_capabilities().

Here is the call graph for this function:

static int check_connect_arguments ( struct connect_params_t *  conn,
char *  ssid,
unsigned char **  key 
) [static]

Helper function for checking settings_and_connect DBUS parameters.

Parameters:
conn Connection parameters.
ssid SSID.
key Encryption keys.
Returns:
status.

Definition at line 1298 of file dbus-handler.c.

Referenced by settings_and_connect_request().

static int check_group_cipher ( guint32  c1,
guint32  c2 
) [static]

Compare group ciphers.

Parameters:
c1 Cipher 1.
c2 Cipher 2.
Returns:
1 if matches.

Definition at line 1865 of file dbus-handler.c.

Referenced by check_ciphers().

int clean_dbus_handler ( void   ) 

Helper function for cleaning handler.

Definition at line 205 of file dbus-handler.c.

void clean_roam_cache ( void   ) 

Clean roaming cache.

Definition at line 1061 of file dbus-handler.c.

References clean_scan_results().

Referenced by ask_scan_results(), find_connection(), and set_wlan_state().

Here is the call graph for this function:

void clear_wpa_keys ( unsigned char *  bssid  ) 

Clear WPA keys.

Parameters:
bssid optional BSSID which keys to remove.

Definition at line 1240 of file dbus-handler.c.

References init_iwreq(), and socket_open().

Referenced by associate(), clear_wpa_mode(), disassociate_request(), and handle_wap_event().

Here is the call graph for this function:

void clear_wpa_mode ( void   ) 

Clear WPA mode related stuff.

Definition at line 1068 of file dbus-handler.c.

References clear_wpa_keys().

Referenced by set_wlan_state().

Here is the call graph for this function:

static void connect_from_scan_results ( GSList *  scan_results  )  [static]

Connects based on scan results.

Parameters:
scan_results_save List of scan results.

Definition at line 2179 of file dbus-handler.c.

References clean_scan_results(), find_connection_and_associate(), get_wlan_state(), registrar_error_signal(), rescan(), reschedule_scan(), and set_wlan_state().

Referenced by ask_scan_results().

Here is the call graph for this function:

static DBusHandlerResult connection_status_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Connection status D_BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 2696 of file dbus-handler.c.

References get_wlan_state().

Here is the call graph for this function:

gboolean decrease_signal_in_roam_cache ( unsigned char *  bssid  ) 

Give penalty to failed AP.

Parameters:
bssid BSSID.
Returns:
status.

Definition at line 1841 of file dbus-handler.c.

Referenced by handle_wap_event().

void destroy_dbus_handlers ( DBusConnection *  connection  ) 

Destroy D-BUS handlers.

Parameters:
connection DBUS connection.

Definition at line 3183 of file dbus-handler.c.

Referenced by main().

static void disassociate_cb ( DBusPendingCall *  pending,
void *  user_data 
) [static]

Disassociate callback.

Parameters:
pending Pending DBUS message.
user_data Callback data.
Returns:
status

Definition at line 3024 of file dbus-handler.c.

Referenced by disassociate_eap().

int disassociate_eap ( void   ) 

Disassociate EAP D-BUS request.

Returns:
status.

Definition at line 3050 of file dbus-handler.c.

References disassociate_cb().

Referenced by handle_wap_event().

Here is the call graph for this function:

static DBusHandlerResult disassociate_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Disassociate WLAN D-BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 2446 of file dbus-handler.c.

References clear_wpa_keys(), get_wlan_state(), get_wpa_mode(), mlme_command(), scan(), and set_wlan_state().

Here is the call graph for this function:

static DBusHandlerResult disconnect_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Disconnect WLAN and remove kernel module D-BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 2426 of file dbus-handler.c.

References set_scan_state(), and set_wlan_state().

Here is the call graph for this function:

static dbus_uint32_t find_adhoc_channel ( GSList *  ap_list  )  [static]

Select Adhoc channel.

Parameters:
ap_list List of scanned APs.
Returns:
selected channel.

Definition at line 2068 of file dbus-handler.c.

Referenced by find_connection_and_associate().

struct scan_results_t* find_connection ( GSList *  ap_list,
struct connect_params_t *  conn,
gboolean  update_roam_cache 
) [read]

Find connection.

Parameters:
ap_list List of access points.
conn Connection parameters.
update_roam_cache Update roaming cache or not.
Returns:
scan_results_t Returns best connection if found.

Definition at line 1990 of file dbus-handler.c.

References add_to_roam_cache(), check_capabilities(), clean_roam_cache(), and is_ap_in_black_list().

Referenced by find_connection_and_associate().

Here is the call graph for this function:

int find_connection_and_associate ( GSList *  scan_results,
gboolean  update_roam_cache,
gboolean  create_new_adhoc 
)

Find connection and associate.

Parameters:
scan_results Scan results.
Returns:
status.

Definition at line 2103 of file dbus-handler.c.

References associate(), find_adhoc_channel(), and find_connection().

Referenced by connect_from_scan_results(), handle_wap_event(), settings_and_connect_request(), and wlan_connect_timer_cb().

Here is the call graph for this function:

unsigned char* find_pmkid_from_pmk_cache ( unsigned char *  mac  ) 

Find entry from PMKSA cache.

Parameters:
mac MAC address to identify the entry.
Returns:
PMKID or NULL.

Definition at line 1150 of file dbus-handler.c.

Referenced by generate_wpa2_ie().

guint get_encryption_info ( void   ) 

Get encryption info.

Returns:
status.

Definition at line 173 of file dbus-handler.c.

Referenced by handle_wap_event().

static gint get_gconf_int ( const gchar *  path  )  [static]

Helper function for getting Gconf values.

Parameters:
path Gconf path to search for user specified value.
Returns:
CAM timeout.

Definition at line 123 of file dbus-handler.c.

Referenced by set_power_state().

guint get_mode ( void   ) 

Helper function for getting the wlan mode.

Returns:
mode.

Definition at line 802 of file dbus-handler.c.

Referenced by icd_check_signal_dbus(), and status_request().

static int get_own_mac ( void   )  [static]

Function to get own MAC address.

Definition at line 101 of file dbus-handler.c.

References socket_open().

Referenced by init_dbus_handler().

Here is the call graph for this function:

guint get_scan_state ( void   ) 

Helper function for getting the scan state.

Returns:
state.

Definition at line 794 of file dbus-handler.c.

Referenced by ask_scan_results(), handle_wap_event(), print_event_token(), scan(), and scan_request().

int get_we_device_name ( void   ) 

Find the name of the wireless device, needed in all ioctl calls. Save the result so that we don't need to find it in every ioctl call.

Returns:
status.

Definition at line 926 of file dbus-handler.c.

References set_we_name(), and socket_open().

Referenced by main().

Here is the call graph for this function:

guint get_wlan_state ( void   ) 

gboolean get_wpa_mode ( void   ) 

Check if WPA mode is in use.

Returns:
TRUE if mode is in use.

Definition at line 1088 of file dbus-handler.c.

Referenced by associate(), disassociate_request(), and handle_wap_event().

static DBusHandlerResult icd_check_signal_dbus ( DBusMessage *  message  )  [static]

Helper function for mode change DBUS handling.

Parameters:
message DBUS message. Check ICD DBUS signal.
message DBUS message.
Returns:
DBusHandlerResult.

Definition at line 302 of file dbus-handler.c.

References get_mode(), get_wlan_state(), set_power_state(), set_wlan_state(), and socket_open().

Referenced by wlancond_req_handler().

Here is the call graph for this function:

int init_dbus_handler ( void   ) 

Helper function for initializing handler structs

Definition at line 193 of file dbus-handler.c.

References get_own_mac().

Referenced by main().

Here is the call graph for this function:

void init_dbus_handlers ( DBusConnection *  connection  ) 

Create bindings for D-BUS handlers.

Parameters:
connection DBUS connection.

Definition at line 3160 of file dbus-handler.c.

Referenced by main().

static int init_if ( int  sock  )  [static]

Initialize the WLAN interface.

Parameters:
sock socket.
Returns:
previous state.

Definition at line 874 of file dbus-handler.c.

References get_wlan_state(), set_interface_state(), set_power_state(), and set_wlan_state().

Referenced by scan_request(), and settings_and_connect_request().

Here is the call graph for this function:

void init_iwreq ( struct iwreq *  req  ) 

static DBusHandlerResult interface_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Interface D_BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 2674 of file dbus-handler.c.

int mlme_command ( guchar *  addr,
guint16  cmd,
guint16  reason_code 
)

MLME command.

Parameters:
addr Access point MAC address.
cmd Command.
reason_code Reason for leaving.
Returns:
status.

Definition at line 486 of file dbus-handler.c.

References init_iwreq(), and socket_open().

Referenced by disassociate_request(), handle_mic_failure(), and set_wlan_state().

Here is the call graph for this function:

void mode_change ( const char *  mode  ) 

Helper function for mode change.

Parameters:
mode New mode.

Definition at line 215 of file dbus-handler.c.

References set_wlan_state().

Referenced by main().

Here is the call graph for this function:

static int network_compare ( gconstpointer  a,
gconstpointer  b 
) [static]

Network compare.

Parameters:
a Pointer to scan_result 1.
b Pointer to scan result 2.
Returns:
0 if a=b, -1 if a is better than b and 1 if b is better than a.

Definition at line 1738 of file dbus-handler.c.

Referenced by ask_scan_results().

static void registrar_error_signal ( void   )  [static]

Send WPS too many registrars signal.

Definition at line 2152 of file dbus-handler.c.

Referenced by connect_from_scan_results().

gboolean remove_from_roam_cache ( unsigned char *  bssid  ) 

Remove from roam cache.

Parameters:
bssid BSSID to remove.
Returns:
status.

Definition at line 1814 of file dbus-handler.c.

Referenced by wlan_connect_timer_cb().

static gboolean rescan ( void *  data  )  [static]

Helper function for rescanning from a timer.

Definition at line 2167 of file dbus-handler.c.

References get_wlan_state(), and scan().

Referenced by connect_from_scan_results().

Here is the call graph for this function:

static void reschedule_scan ( void   )  [static]

Reschedule scan.

Definition at line 1940 of file dbus-handler.c.

References schedule_scan().

Referenced by connect_from_scan_results().

Here is the call graph for this function:

int scan ( gchar *  ssid,
int  ssid_len,
gboolean  add_timer 
)

Helper function for scanning.

Parameters:
ssid SSID to scan.
ssid_len SSID length.
Returns:
status.

Definition at line 1169 of file dbus-handler.c.

References get_scan_state(), init_iwreq(), set_scan_state(), socket_open(), and wlan_scan_cb().

Referenced by disassociate_request(), handle_wap_event(), rescan(), scan_request(), settings_and_connect_request(), and wlan_connect_timer_cb().

Here is the call graph for this function:

static DBusHandlerResult scan_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Scan D-BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 1622 of file dbus-handler.c.

References get_scan_state(), get_wlan_state(), init_if(), scan(), set_tx_power(), set_wlan_state(), and socket_open().

Here is the call graph for this function:

int scan_results_ioctl ( int  ifindex,
GSList **  scan_results_save 
)

Get scan results from mac80211.

Parameters:
ifindex Interface index.
scan_results_save Scan results to save.
Returns:
status.

Definition at line 2223 of file dbus-handler.c.

References get_interface_data(), init_iwreq(), print_event_token(), save_scan_results(), and socket_open().

Referenced by ask_scan_results(), and settings_and_connect_request().

Here is the call graph for this function:

void schedule_scan ( guint  seconds  ) 

Schedule scan.

Parameters:
seconds Delay scan for this many seconds.

Definition at line 1927 of file dbus-handler.c.

Referenced by handle_custom_event(), and reschedule_scan().

int set_bssid ( unsigned char *  bssid  ) 

Helper function for setting the BSSID.

Parameters:
bssid BSSID.
Returns:
status.

Definition at line 635 of file dbus-handler.c.

References init_iwreq(), and socket_open().

Referenced by associate(), handle_wap_event(), and set_wlan_state().

Here is the call graph for this function:

int set_essid ( char *  essid,
int  essid_len 
)

Helper function for setting the ESSID.

Parameters:
essid ESSID.
essid_len ESSID length.
Returns:
status.

Definition at line 612 of file dbus-handler.c.

References init_iwreq(), and socket_open().

Referenced by associate(), handle_wap_event(), and set_wlan_state().

Here is the call graph for this function:

static int set_freq ( int  channel  )  [static]

Helper function for setting the channel.

Parameters:
channel Channel.
Returns:
status.

Definition at line 1215 of file dbus-handler.c.

References init_iwreq(), and socket_open().

Referenced by associate().

Here is the call graph for this function:

int set_interface_state ( int  sock,
int  dir,
short  flags 
)

Set interface state.

Parameters:
socket socket.
dir direction.
flags settings flags.
Returns:
status.

Definition at line 944 of file dbus-handler.c.

Referenced by ask_scan_results(), init_if(), and set_wlan_state().

static int set_mode ( guint32  mode  )  [static]

Helper function for setting the operating mode.

Definition at line 516 of file dbus-handler.c.

References init_iwreq(), and socket_open().

Referenced by settings_and_connect_request().

Here is the call graph for this function:

static DBusHandlerResult set_pmksa_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Set pmksa D-BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 2726 of file dbus-handler.c.

References add_to_pmksa_cache().

Here is the call graph for this function:

gboolean set_power_state ( guint  new_state,
int  sock 
)

Set WLAN power state.

Parameters:
state New power state.
sock socket.
Returns:
status.

Definition at line 813 of file dbus-handler.c.

References get_gconf_int(), and init_iwreq().

Referenced by icd_check_signal_dbus(), init_if(), set_powersave_request(), and settings_and_connect_request().

Here is the call graph for this function:

static DBusHandlerResult set_powersave_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Set powersave D-BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 2786 of file dbus-handler.c.

References get_wlan_state(), set_power_state(), set_wlan_state(), and socket_open().

Here is the call graph for this function:

void set_scan_state ( guint  new_state  ) 

Helper function for setting new scan state.

Parameters:
new_state New scan state.

Definition at line 770 of file dbus-handler.c.

References send_dbus_scan_results().

Referenced by ask_scan_results(), disconnect_request(), scan(), set_wlan_state(), settings_and_connect_request(), and wlan_scan_cb().

Here is the call graph for this function:

static gboolean set_tx_power ( guint  power,
int  sock 
) [static]

Set tx power level.

Parameters:
power Power level.
sock socket.
Returns:
status.

Definition at line 980 of file dbus-handler.c.

References init_iwreq().

Referenced by scan_request(), and settings_and_connect_request().

Here is the call graph for this function:

static int set_we_name ( int  sock,
char *  name,
char *  args[],
int  count 
) [static]

Cache the wireless interface name.

Parameters:
sock socket.
name inteface name.
args not used.
count not used.
Returns:
status.

Definition at line 901 of file dbus-handler.c.

Referenced by get_we_device_name().

static int set_wep_keys ( struct connect_params_t *  conn  )  [static]

Helper function for setting the WEP keys.

Parameters:
conn Connection parameters.
Returns:
status.

Definition at line 547 of file dbus-handler.c.

References init_iwreq(), and socket_open().

Referenced by associate().

Here is the call graph for this function:

void set_wlan_state ( int  new_state,
int  send_signal,
force_t  force 
)

static DBusHandlerResult settings_and_connect_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Settings and connect D-BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 1383 of file dbus-handler.c.

References check_connect_arguments(), clean_scan_results(), find_connection_and_associate(), init_if(), scan(), scan_results_ioctl(), set_mode(), set_power_state(), set_scan_state(), set_tx_power(), set_wlan_state(), and socket_open().

Here is the call graph for this function:

int socket_open ( void   ) 

static DBusHandlerResult status_request ( DBusMessage *  message,
DBusConnection *  connection 
) [static]

Status D_BUS request.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 2487 of file dbus-handler.c.

References get_mode(), get_wlan_state(), init_iwreq(), and socket_open().

Here is the call graph for this function:

static int update_algorithms ( guint32  encryption  )  [static]

Updates algorithms to internal status.

Parameters:
encryption Encryption settings.
Returns:
status.

Definition at line 1009 of file dbus-handler.c.

Referenced by associate().

void update_own_ie ( unsigned char *  wpa_ie,
guint  wpa_ie_len 
)

Update our Information Element.

Parameters:
wpa_ie WPA Information Element.
wpa_ie_len WPA Information Element length.

Definition at line 163 of file dbus-handler.c.

Referenced by generate_wpa2_ie(), and generate_wpa_ie().

static gboolean wlan_connect_timer_cb ( void *  data  )  [static]

WLAN connect timer callback.

Parameters:
data User data.
Returns:
status.

Definition at line 399 of file dbus-handler.c.

References find_connection_and_associate(), get_wlan_state(), remove_from_roam_cache(), scan(), and set_wlan_state().

Referenced by associate().

Here is the call graph for this function:

static gboolean wlan_if_down_cb ( void *  data  )  [static]

WLAN interface down callback.

Parameters:
data User data.
Returns:
status.

Definition at line 464 of file dbus-handler.c.

References get_wlan_state(), and set_wlan_state().

Referenced by set_wlan_state().

Here is the call graph for this function:

static gboolean wlan_scan_cb ( void *  data  )  [static]

WLAN scan callback.

Parameters:
data User data.
Returns:
status.

Definition at line 443 of file dbus-handler.c.

References get_wlan_state(), set_scan_state(), and set_wlan_state().

Referenced by scan().

Here is the call graph for this function:

DBusHandlerResult wlancond_req_handler ( DBusConnection *  connection,
DBusMessage *  message,
void *  user_data 
)

Generic handler for D-Bus requests.

Parameters:
message DBUS message.
connection DBUS connection.
Returns:
status.

Definition at line 3105 of file dbus-handler.c.

References icd_check_signal_dbus().

Here is the call graph for this function:

int wpa_ie_push ( unsigned char *  ap_mac_addr,
unsigned char *  ap_wpa_ie,
int  ap_wpa_ie_len,
char *  ssid,
int  ssid_len,
unsigned int  authentication_type 
)

WPA IE D-BUS push.

Parameters:
ap_mac_addr Access point MAC address.
ap_wpa_ie Pointer to access point WPA IE.
ap_wpa_ie_len Access point WPA IE length.
authentication_type authentication type.
Returns:
status.

Definition at line 2882 of file dbus-handler.c.

References wpa_ie_push_cb().

Referenced by associate().

Here is the call graph for this function:

static void wpa_ie_push_cb ( DBusPendingCall *  pending,
void *  user_data 
) [static]

WPA IE callback.

Parameters:
pending Pending DBUS message.
user_data Callback data.
Returns:
status

Definition at line 2846 of file dbus-handler.c.

References set_wlan_state().

Referenced by wpa_ie_push().

Here is the call graph for this function:

int wpa_mic_failure_event ( dbus_bool_t  key_type,
dbus_bool_t  is_fatal 
)

WPA MIC failure event D-BUS request.

Parameters:
key_type Key type, Unicast/Broadcast key.
is_fatal Error is fatal if true.
Returns:
status.

Definition at line 2939 of file dbus-handler.c.

Referenced by handle_mic_failure().


Variable Documentation

method_handler_t handlers[] [static]

Initial value:

 {
        { WLANCOND_REQ_INTERFACE, WLANCOND_SETTINGS_AND_CONNECT_REQ, settings_and_connect_request},
        { WLANCOND_REQ_INTERFACE, WLANCOND_SCAN_REQ, scan_request},        
        { WLANCOND_REQ_INTERFACE, WLANCOND_STATUS_REQ, status_request},        
        { WLANCOND_REQ_INTERFACE, WLANCOND_INTERFACE_REQ, interface_request},        
        { WLANCOND_REQ_INTERFACE, WLANCOND_CONNECTION_STATUS_REQ, connection_status_request},        
        { WLANCOND_REQ_INTERFACE, WLANCOND_SET_PMKSA_REQ, set_pmksa_request},
        { WLANCOND_REQ_INTERFACE, WLANCOND_SET_POWERSAVE_REQ, set_powersave_request},
        { WLANCOND_REQ_INTERFACE, WLANCOND_DISCONNECT_REQ, disconnect_request},
        { WLANCOND_REQ_INTERFACE, WLANCOND_DISASSOCIATE_REQ, disassociate_request},
        { NULL }
}

Definition at line 3086 of file dbus-handler.c.

DBusObjectPathVTable wlancond_req_vtable [static]

Initial value:

 {
        .message_function    = wlancond_req_handler,
        .unregister_function = NULL
}

Definition at line 3150 of file dbus-handler.c.


Generated on Thu Jun 25 11:44:01 2009 for WLAN Connection Daemon by  doxygen 1.5.6