Home | History | Annotate | Download | only in dbus
      1 /*
      2  * WPA Supplicant / dbus-based control interface
      3  * Copyright (c) 2006, Dan Williams <dcbw (at) redhat.com> and Red Hat, Inc.
      4  *
      5  * This program is free software; you can redistribute it and/or modify
      6  * it under the terms of the GNU General Public License version 2 as
      7  * published by the Free Software Foundation.
      8  *
      9  * Alternatively, this software may be distributed under the terms of BSD
     10  * license.
     11  *
     12  * See README and COPYING for more details.
     13  */
     14 
     15 #ifndef CTRL_IFACE_DBUS_H
     16 #define CTRL_IFACE_DBUS_H
     17 
     18 struct wps_credential;
     19 
     20 #ifdef CONFIG_CTRL_IFACE_DBUS
     21 
     22 #define WPAS_DBUS_OBJECT_PATH_MAX 150
     23 
     24 #define WPAS_DBUS_SERVICE	"fi.epitest.hostap.WPASupplicant"
     25 #define WPAS_DBUS_PATH		"/fi/epitest/hostap/WPASupplicant"
     26 #define WPAS_DBUS_INTERFACE	"fi.epitest.hostap.WPASupplicant"
     27 
     28 #define WPAS_DBUS_PATH_INTERFACES	WPAS_DBUS_PATH "/Interfaces"
     29 #define WPAS_DBUS_IFACE_INTERFACE	WPAS_DBUS_INTERFACE ".Interface"
     30 
     31 #define WPAS_DBUS_NETWORKS_PART "Networks"
     32 #define WPAS_DBUS_IFACE_NETWORK	WPAS_DBUS_INTERFACE ".Network"
     33 
     34 #define WPAS_DBUS_BSSIDS_PART	"BSSIDs"
     35 #define WPAS_DBUS_IFACE_BSSID	WPAS_DBUS_INTERFACE ".BSSID"
     36 
     37 
     38 /* Errors */
     39 #define WPAS_ERROR_INVALID_NETWORK \
     40 	WPAS_DBUS_IFACE_INTERFACE ".InvalidNetwork"
     41 #define WPAS_ERROR_INVALID_BSSID \
     42 	WPAS_DBUS_IFACE_INTERFACE ".InvalidBSSID"
     43 
     44 #define WPAS_ERROR_INVALID_OPTS \
     45 	WPAS_DBUS_INTERFACE ".InvalidOptions"
     46 #define WPAS_ERROR_INVALID_IFACE \
     47 	WPAS_DBUS_INTERFACE ".InvalidInterface"
     48 
     49 #define WPAS_ERROR_ADD_ERROR \
     50 	WPAS_DBUS_INTERFACE ".AddError"
     51 #define WPAS_ERROR_EXISTS_ERROR \
     52 	WPAS_DBUS_INTERFACE ".ExistsError"
     53 #define WPAS_ERROR_REMOVE_ERROR \
     54 	WPAS_DBUS_INTERFACE ".RemoveError"
     55 
     56 #define WPAS_ERROR_SCAN_ERROR \
     57 	WPAS_DBUS_IFACE_INTERFACE ".ScanError"
     58 #define WPAS_ERROR_ADD_NETWORK_ERROR \
     59 	WPAS_DBUS_IFACE_INTERFACE ".AddNetworkError"
     60 #define WPAS_ERROR_INTERNAL_ERROR \
     61 	WPAS_DBUS_IFACE_INTERFACE ".InternalError"
     62 #define WPAS_ERROR_REMOVE_NETWORK_ERROR \
     63 	WPAS_DBUS_IFACE_INTERFACE ".RemoveNetworkError"
     64 
     65 #define WPAS_ERROR_WPS_PBC_ERROR \
     66 	WPAS_DBUS_IFACE_INTERFACE ".WpsPbcError"
     67 #define WPAS_ERROR_WPS_PIN_ERROR \
     68 	WPAS_DBUS_IFACE_INTERFACE ".WpsPinError"
     69 #define WPAS_ERROR_WPS_REG_ERROR \
     70 	WPAS_DBUS_IFACE_INTERFACE ".WpsRegError"
     71 
     72 #define WPAS_DBUS_BSSID_FORMAT "%02x%02x%02x%02x%02x%02x"
     73 
     74 struct wpa_global;
     75 struct wpa_supplicant;
     76 
     77 int wpa_supplicant_dbus_ctrl_iface_init(struct wpas_dbus_priv *iface);
     78 void wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s);
     79 void wpa_supplicant_dbus_notify_scanning(struct wpa_supplicant *wpa_s);
     80 void wpa_supplicant_dbus_notify_state_change(struct wpa_supplicant *wpa_s,
     81 					     enum wpa_states new_state,
     82 					     enum wpa_states old_state);
     83 void wpa_supplicant_dbus_notify_wps_cred(struct wpa_supplicant *wpa_s,
     84 					 const struct wps_credential *cred);
     85 void wpa_supplicant_dbus_notify_certification(struct wpa_supplicant *wpa_s,
     86 					      int depth, const char *subject,
     87 					      const char *cert_hash,
     88 					      const struct wpabuf *cert);
     89 
     90 char * wpas_dbus_decompose_object_path(const char *path, char **network,
     91                                        char **bssid);
     92 
     93 int wpas_dbus_register_iface(struct wpa_supplicant *wpa_s);
     94 int wpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s);
     95 
     96 
     97 /* Methods internal to the dbus control interface */
     98 struct wpa_supplicant * wpa_supplicant_get_iface_by_dbus_path(
     99 	struct wpa_global *global, const char *path);
    100 
    101 #else /* CONFIG_CTRL_IFACE_DBUS */
    102 
    103 static inline void
    104 wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s)
    105 {
    106 }
    107 
    108 static inline void
    109 wpa_supplicant_dbus_notify_scanning(struct wpa_supplicant *wpa_s)
    110 {
    111 }
    112 
    113 #define wpa_supplicant_dbus_notify_state_change(w,n,o) do { } while (0)
    114 
    115 static inline void
    116 wpa_supplicant_dbus_notify_wps_cred(struct wpa_supplicant *wpa_s,
    117 				    const struct wps_credential *cred)
    118 {
    119 }
    120 
    121 static inline void
    122 wpa_supplicant_dbus_notify_certification(struct wpa_supplicant *wpa_s,
    123 					      int depth, const char *subject,
    124 					      const char *cert_hash,
    125 					      const struct wpabuf *cert)
    126 {
    127 }
    128 
    129 static inline int
    130 wpas_dbus_register_iface(struct wpa_supplicant *wpa_s)
    131 {
    132 	return 0;
    133 }
    134 
    135 static inline int
    136 wpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s)
    137 {
    138 	return 0;
    139 }
    140 
    141 #endif /* CONFIG_CTRL_IFACE_DBUS */
    142 
    143 #endif /* CTRL_IFACE_DBUS_H */
    144