1214501Srpaulo/* 2214501Srpaulo * WPA Supplicant / dbus-based control interface 3214501Srpaulo * Copyright (c) 2006, Dan Williams <dcbw@redhat.com> and Red Hat, Inc. 4214501Srpaulo * 5252190Srpaulo * This software may be distributed under the terms of the BSD license. 6252190Srpaulo * See README for more details. 7214501Srpaulo */ 8214501Srpaulo 9214501Srpaulo#ifndef CTRL_IFACE_DBUS_H 10214501Srpaulo#define CTRL_IFACE_DBUS_H 11214501Srpaulo 12214501Srpaulostruct wps_credential; 13214501Srpaulo 14214501Srpaulo#ifdef CONFIG_CTRL_IFACE_DBUS 15214501Srpaulo 16214501Srpaulo#define WPAS_DBUS_OBJECT_PATH_MAX 150 17214501Srpaulo 18214501Srpaulo#define WPAS_DBUS_SERVICE "fi.epitest.hostap.WPASupplicant" 19214501Srpaulo#define WPAS_DBUS_PATH "/fi/epitest/hostap/WPASupplicant" 20214501Srpaulo#define WPAS_DBUS_INTERFACE "fi.epitest.hostap.WPASupplicant" 21214501Srpaulo 22214501Srpaulo#define WPAS_DBUS_PATH_INTERFACES WPAS_DBUS_PATH "/Interfaces" 23214501Srpaulo#define WPAS_DBUS_IFACE_INTERFACE WPAS_DBUS_INTERFACE ".Interface" 24214501Srpaulo 25214501Srpaulo#define WPAS_DBUS_NETWORKS_PART "Networks" 26214501Srpaulo#define WPAS_DBUS_IFACE_NETWORK WPAS_DBUS_INTERFACE ".Network" 27214501Srpaulo 28214501Srpaulo#define WPAS_DBUS_BSSIDS_PART "BSSIDs" 29214501Srpaulo#define WPAS_DBUS_IFACE_BSSID WPAS_DBUS_INTERFACE ".BSSID" 30214501Srpaulo 31214501Srpaulo 32214501Srpaulo/* Errors */ 33214501Srpaulo#define WPAS_ERROR_INVALID_NETWORK \ 34214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".InvalidNetwork" 35214501Srpaulo#define WPAS_ERROR_INVALID_BSSID \ 36214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".InvalidBSSID" 37214501Srpaulo 38214501Srpaulo#define WPAS_ERROR_INVALID_OPTS \ 39214501Srpaulo WPAS_DBUS_INTERFACE ".InvalidOptions" 40214501Srpaulo#define WPAS_ERROR_INVALID_IFACE \ 41214501Srpaulo WPAS_DBUS_INTERFACE ".InvalidInterface" 42214501Srpaulo 43214501Srpaulo#define WPAS_ERROR_ADD_ERROR \ 44214501Srpaulo WPAS_DBUS_INTERFACE ".AddError" 45214501Srpaulo#define WPAS_ERROR_EXISTS_ERROR \ 46214501Srpaulo WPAS_DBUS_INTERFACE ".ExistsError" 47214501Srpaulo#define WPAS_ERROR_REMOVE_ERROR \ 48214501Srpaulo WPAS_DBUS_INTERFACE ".RemoveError" 49214501Srpaulo 50214501Srpaulo#define WPAS_ERROR_SCAN_ERROR \ 51214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".ScanError" 52214501Srpaulo#define WPAS_ERROR_ADD_NETWORK_ERROR \ 53214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".AddNetworkError" 54214501Srpaulo#define WPAS_ERROR_INTERNAL_ERROR \ 55214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".InternalError" 56214501Srpaulo#define WPAS_ERROR_REMOVE_NETWORK_ERROR \ 57214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".RemoveNetworkError" 58214501Srpaulo 59214501Srpaulo#define WPAS_ERROR_WPS_PBC_ERROR \ 60214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".WpsPbcError" 61214501Srpaulo#define WPAS_ERROR_WPS_PIN_ERROR \ 62214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".WpsPinError" 63214501Srpaulo#define WPAS_ERROR_WPS_REG_ERROR \ 64214501Srpaulo WPAS_DBUS_IFACE_INTERFACE ".WpsRegError" 65214501Srpaulo 66214501Srpaulo#define WPAS_DBUS_BSSID_FORMAT "%02x%02x%02x%02x%02x%02x" 67214501Srpaulo 68214501Srpaulostruct wpa_global; 69214501Srpaulostruct wpa_supplicant; 70214501Srpaulo 71214501Srpauloint wpa_supplicant_dbus_ctrl_iface_init(struct wpas_dbus_priv *iface); 72214501Srpaulovoid wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s); 73214501Srpaulovoid wpa_supplicant_dbus_notify_scanning(struct wpa_supplicant *wpa_s); 74214501Srpaulovoid wpa_supplicant_dbus_notify_state_change(struct wpa_supplicant *wpa_s, 75214501Srpaulo enum wpa_states new_state, 76214501Srpaulo enum wpa_states old_state); 77214501Srpaulovoid wpa_supplicant_dbus_notify_wps_cred(struct wpa_supplicant *wpa_s, 78214501Srpaulo const struct wps_credential *cred); 79252190Srpaulovoid wpa_supplicant_dbus_notify_certification(struct wpa_supplicant *wpa_s, 80252190Srpaulo int depth, const char *subject, 81252190Srpaulo const char *cert_hash, 82252190Srpaulo const struct wpabuf *cert); 83214501Srpaulo 84214501Srpaulochar * wpas_dbus_decompose_object_path(const char *path, char **network, 85214501Srpaulo char **bssid); 86214501Srpaulo 87214501Srpauloint wpas_dbus_register_iface(struct wpa_supplicant *wpa_s); 88214501Srpauloint wpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s); 89214501Srpaulo 90214501Srpaulo 91214501Srpaulo/* Methods internal to the dbus control interface */ 92214501Srpaulostruct wpa_supplicant * wpa_supplicant_get_iface_by_dbus_path( 93214501Srpaulo struct wpa_global *global, const char *path); 94214501Srpaulo 95214501Srpaulo#else /* CONFIG_CTRL_IFACE_DBUS */ 96214501Srpaulo 97214501Srpaulostatic inline void 98214501Srpaulowpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s) 99214501Srpaulo{ 100214501Srpaulo} 101214501Srpaulo 102214501Srpaulostatic inline void 103214501Srpaulowpa_supplicant_dbus_notify_scanning(struct wpa_supplicant *wpa_s) 104214501Srpaulo{ 105214501Srpaulo} 106214501Srpaulo 107214501Srpaulo#define wpa_supplicant_dbus_notify_state_change(w,n,o) do { } while (0) 108214501Srpaulo 109214501Srpaulostatic inline void 110214501Srpaulowpa_supplicant_dbus_notify_wps_cred(struct wpa_supplicant *wpa_s, 111214501Srpaulo const struct wps_credential *cred) 112214501Srpaulo{ 113214501Srpaulo} 114214501Srpaulo 115252190Srpaulostatic inline void 116252190Srpaulowpa_supplicant_dbus_notify_certification(struct wpa_supplicant *wpa_s, 117252190Srpaulo int depth, const char *subject, 118252190Srpaulo const char *cert_hash, 119252190Srpaulo const struct wpabuf *cert) 120252190Srpaulo{ 121252190Srpaulo} 122252190Srpaulo 123214501Srpaulostatic inline int 124214501Srpaulowpas_dbus_register_iface(struct wpa_supplicant *wpa_s) 125214501Srpaulo{ 126214501Srpaulo return 0; 127214501Srpaulo} 128214501Srpaulo 129214501Srpaulostatic inline int 130214501Srpaulowpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s) 131214501Srpaulo{ 132214501Srpaulo return 0; 133214501Srpaulo} 134214501Srpaulo 135214501Srpaulo#endif /* CONFIG_CTRL_IFACE_DBUS */ 136214501Srpaulo 137214501Srpaulo#endif /* CTRL_IFACE_DBUS_H */ 138