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