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