1 1.1 christos /* 2 1.1 christos * WPA Supplicant / dbus-based control interface 3 1.1 christos * Copyright (c) 2006, Dan Williams <dcbw (at) redhat.com> and Red Hat, Inc. 4 1.1 christos * Copyright (c) 2009-2010, Witold Sowa <witold.sowa (at) gmail.com> 5 1.1 christos * 6 1.1.1.4 christos * This software may be distributed under the terms of the BSD license. 7 1.1.1.4 christos * See README for more details. 8 1.1 christos */ 9 1.1 christos 10 1.1 christos #ifndef CTRL_IFACE_DBUS_NEW_HANDLERS_H 11 1.1 christos #define CTRL_IFACE_DBUS_NEW_HANDLERS_H 12 1.1 christos 13 1.1.1.7 christos #include "dbus_new_helpers.h" 14 1.1.1.7 christos 15 1.1 christos struct network_handler_args { 16 1.1 christos struct wpa_supplicant *wpa_s; 17 1.1 christos struct wpa_ssid *ssid; 18 1.1 christos }; 19 1.1 christos 20 1.1 christos struct bss_handler_args { 21 1.1 christos struct wpa_supplicant *wpa_s; 22 1.1 christos unsigned int id; 23 1.1 christos }; 24 1.1 christos 25 1.1.1.9 christos struct sta_handler_args { 26 1.1.1.9 christos struct wpa_supplicant *wpa_s; 27 1.1.1.9 christos const u8 *sta; 28 1.1.1.9 christos }; 29 1.1.1.9 christos 30 1.1.1.2 christos dbus_bool_t wpas_dbus_simple_property_getter(DBusMessageIter *iter, 31 1.1.1.2 christos const int type, 32 1.1.1.2 christos const void *val, 33 1.1.1.2 christos DBusError *error); 34 1.1.1.2 christos 35 1.1.1.2 christos dbus_bool_t wpas_dbus_simple_property_setter(DBusMessageIter *iter, 36 1.1.1.2 christos DBusError *error, 37 1.1.1.2 christos const int type, void *val); 38 1.1.1.2 christos 39 1.1.1.2 christos dbus_bool_t wpas_dbus_simple_array_property_getter(DBusMessageIter *iter, 40 1.1.1.2 christos const int type, 41 1.1.1.2 christos const void *array, 42 1.1.1.2 christos size_t array_len, 43 1.1.1.2 christos DBusError *error); 44 1.1.1.2 christos 45 1.1.1.2 christos dbus_bool_t wpas_dbus_simple_array_array_property_getter(DBusMessageIter *iter, 46 1.1.1.2 christos const int type, 47 1.1.1.2 christos struct wpabuf **array, 48 1.1.1.2 christos size_t array_len, 49 1.1.1.2 christos DBusError *error); 50 1.1 christos 51 1.1.1.8 christos dbus_bool_t wpas_dbus_string_property_getter(DBusMessageIter *iter, 52 1.1.1.8 christos const void *val, 53 1.1.1.8 christos DBusError *error); 54 1.1.1.8 christos 55 1.1 christos DBusMessage * wpas_dbus_handler_create_interface(DBusMessage *message, 56 1.1 christos struct wpa_global *global); 57 1.1 christos 58 1.1 christos DBusMessage * wpas_dbus_handler_remove_interface(DBusMessage *message, 59 1.1 christos struct wpa_global *global); 60 1.1 christos 61 1.1 christos DBusMessage * wpas_dbus_handler_get_interface(DBusMessage *message, 62 1.1 christos struct wpa_global *global); 63 1.1 christos 64 1.1.1.7 christos DBusMessage * wpas_dbus_handler_expect_disconnect(DBusMessage *message, 65 1.1.1.7 christos struct wpa_global *global); 66 1.1.1.2 christos 67 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_debug_level); 68 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_debug_timestamp); 69 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_debug_show_keys); 70 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_debug_level); 71 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_debug_timestamp); 72 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_debug_show_keys); 73 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_interfaces); 74 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_eap_methods); 75 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_global_capabilities); 76 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_iface_global); 77 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_iface_global); 78 1.1.1.3 adam 79 1.1 christos DBusMessage * wpas_dbus_handler_scan(DBusMessage *message, 80 1.1 christos struct wpa_supplicant *wpa_s); 81 1.1 christos 82 1.1.1.8 christos DBusMessage * wpas_dbus_handler_abort_scan(DBusMessage *message, 83 1.1.1.8 christos struct wpa_supplicant *wpa_s); 84 1.1.1.8 christos 85 1.1.1.5 christos DBusMessage * wpas_dbus_handler_signal_poll(DBusMessage *message, 86 1.1.1.5 christos struct wpa_supplicant *wpa_s); 87 1.1.1.5 christos 88 1.1 christos DBusMessage * wpas_dbus_handler_disconnect(DBusMessage *message, 89 1.1 christos struct wpa_supplicant *wpa_s); 90 1.1 christos 91 1.1.1.2 christos dbus_bool_t set_network_properties(struct wpa_supplicant *wpa_s, 92 1.1.1.2 christos struct wpa_ssid *ssid, 93 1.1.1.2 christos DBusMessageIter *iter, 94 1.1.1.2 christos DBusError *error); 95 1.1.1.2 christos 96 1.1 christos DBusMessage * wpas_dbus_handler_add_network(DBusMessage *message, 97 1.1 christos struct wpa_supplicant *wpa_s); 98 1.1 christos 99 1.1.1.4 christos DBusMessage * wpas_dbus_handler_reassociate(DBusMessage *message, 100 1.1.1.4 christos struct wpa_supplicant *wpa_s); 101 1.1.1.4 christos 102 1.1.1.5 christos DBusMessage * wpas_dbus_handler_reattach(DBusMessage *message, 103 1.1.1.5 christos struct wpa_supplicant *wpa_s); 104 1.1.1.5 christos 105 1.1.1.7 christos DBusMessage * wpas_dbus_handler_reconnect(DBusMessage *message, 106 1.1.1.7 christos struct wpa_supplicant *wpa_s); 107 1.1.1.7 christos 108 1.1 christos DBusMessage * wpas_dbus_handler_remove_network(DBusMessage *message, 109 1.1 christos struct wpa_supplicant *wpa_s); 110 1.1 christos 111 1.1.1.2 christos DBusMessage * wpas_dbus_handler_remove_all_networks( 112 1.1.1.2 christos DBusMessage *message, struct wpa_supplicant *wpa_s); 113 1.1.1.2 christos 114 1.1 christos DBusMessage * wpas_dbus_handler_select_network(DBusMessage *message, 115 1.1 christos struct wpa_supplicant *wpa_s); 116 1.1 christos 117 1.1.1.2 christos DBusMessage * wpas_dbus_handler_network_reply(DBusMessage *message, 118 1.1.1.2 christos struct wpa_supplicant *wpa_s); 119 1.1.1.2 christos 120 1.1.1.10 christos DBusMessage * wpas_dbus_handler_roam(DBusMessage *message, 121 1.1.1.10 christos struct wpa_supplicant *wpa_s); 122 1.1.1.10 christos 123 1.1 christos DBusMessage * wpas_dbus_handler_add_blob(DBusMessage *message, 124 1.1 christos struct wpa_supplicant *wpa_s); 125 1.1 christos 126 1.1 christos DBusMessage * wpas_dbus_handler_get_blob(DBusMessage *message, 127 1.1 christos struct wpa_supplicant *wpa_s); 128 1.1 christos 129 1.1 christos DBusMessage * wpas_dbus_handler_remove_blob(DBusMessage *message, 130 1.1 christos struct wpa_supplicant *wpa_s); 131 1.1 christos 132 1.1.1.5 christos DBusMessage * wpas_dbus_handler_set_pkcs11_engine_and_module_path( 133 1.1.1.5 christos DBusMessage *message, struct wpa_supplicant *wpa_s); 134 1.1.1.5 christos 135 1.1.1.2 christos DBusMessage * wpas_dbus_handler_flush_bss(DBusMessage *message, 136 1.1.1.2 christos struct wpa_supplicant *wpa_s); 137 1.1 christos 138 1.1.1.4 christos DBusMessage * wpas_dbus_handler_autoscan(DBusMessage *message, 139 1.1.1.4 christos struct wpa_supplicant *wpa_s); 140 1.1.1.4 christos 141 1.1.1.5 christos DBusMessage * wpas_dbus_handler_eap_logoff(DBusMessage *message, 142 1.1.1.5 christos struct wpa_supplicant *wpa_s); 143 1.1.1.5 christos 144 1.1.1.5 christos DBusMessage * wpas_dbus_handler_eap_logon(DBusMessage *message, 145 1.1.1.5 christos struct wpa_supplicant *wpa_s); 146 1.1.1.5 christos 147 1.1.1.10 christos DBusMessage * wpas_dbus_handler_add_cred(DBusMessage *message, 148 1.1.1.10 christos struct wpa_supplicant *wpa_s); 149 1.1.1.10 christos 150 1.1.1.10 christos DBusMessage * wpas_dbus_handler_remove_cred(DBusMessage *message, 151 1.1.1.10 christos struct wpa_supplicant *wpa_s); 152 1.1.1.10 christos 153 1.1.1.10 christos DBusMessage * wpas_dbus_handler_remove_all_creds(DBusMessage *message, 154 1.1.1.10 christos struct wpa_supplicant *wpa_s); 155 1.1.1.10 christos 156 1.1.1.10 christos DBusMessage * 157 1.1.1.10 christos wpas_dbus_handler_interworking_select(DBusMessage *message, 158 1.1.1.10 christos struct wpa_supplicant *wpa_s); 159 1.1.1.10 christos 160 1.1.1.10 christos DBusMessage * 161 1.1.1.10 christos wpas_dbus_handler_anqp_get(DBusMessage *message, struct wpa_supplicant *wpa_s); 162 1.1.1.10 christos 163 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_capabilities); 164 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_state); 165 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_scanning); 166 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_ap_scan); 167 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_ap_scan); 168 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_fast_reauth); 169 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_fast_reauth); 170 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_disconnect_reason); 171 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_disassociate_reason); 172 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_auth_status_code); 173 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_assoc_status_code); 174 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_roam_time); 175 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_roam_complete); 176 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_session_length); 177 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_tm_status); 178 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_expire_age); 179 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_bss_expire_age); 180 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_expire_count); 181 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_bss_expire_count); 182 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_country); 183 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_country); 184 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_scan_interval); 185 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_scan_interval); 186 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_ifname); 187 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_driver); 188 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bridge_ifname); 189 1.1.1.10 christos DECLARE_ACCESSOR(wpas_dbus_setter_bridge_ifname); 190 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_config_file); 191 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_current_bss); 192 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_current_network); 193 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_current_auth_mode); 194 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bsss); 195 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_networks); 196 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_pkcs11_engine_path); 197 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_pkcs11_module_path); 198 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_blobs); 199 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_stas); 200 1.1.1.10 christos DECLARE_ACCESSOR(wpas_dbus_getter_mac_address_randomization_mask); 201 1.1.1.10 christos DECLARE_ACCESSOR(wpas_dbus_setter_mac_address_randomization_mask); 202 1.1.1.10 christos DECLARE_ACCESSOR(wpas_dbus_getter_mac_address); 203 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_sta_address); 204 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_sta_aid); 205 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_sta_caps); 206 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_sta_rx_packets); 207 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_sta_tx_packets); 208 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_sta_tx_bytes); 209 1.1.1.9 christos DECLARE_ACCESSOR(wpas_dbus_getter_sta_rx_bytes); 210 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_bssid); 211 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_ssid); 212 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_privacy); 213 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_mode); 214 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_signal); 215 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_frequency); 216 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_rates); 217 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_wpa); 218 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_rsn); 219 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_wps); 220 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_ies); 221 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_age); 222 1.1.1.10 christos DECLARE_ACCESSOR(wpas_dbus_getter_bss_anqp); 223 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_enabled); 224 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_enabled); 225 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_network_properties); 226 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_network_properties); 227 1.1 christos 228 1.1 christos DBusMessage * wpas_dbus_handler_wps_start(DBusMessage *message, 229 1.1 christos struct wpa_supplicant *wpa_s); 230 1.1 christos 231 1.1.1.7 christos DBusMessage * wpas_dbus_handler_wps_cancel(DBusMessage *message, 232 1.1.1.7 christos struct wpa_supplicant *wpa_s); 233 1.1 christos 234 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_process_credentials); 235 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_process_credentials); 236 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_getter_config_methods); 237 1.1.1.7 christos DECLARE_ACCESSOR(wpas_dbus_setter_config_methods); 238 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_getter_wps_device_name); 239 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_setter_wps_device_name); 240 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_getter_wps_manufacturer); 241 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_setter_wps_manufacturer); 242 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_getter_wps_device_model_name); 243 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_setter_wps_device_model_name); 244 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_getter_wps_device_model_number); 245 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_setter_wps_device_model_number); 246 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_getter_wps_device_serial_number); 247 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_setter_wps_device_serial_number); 248 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_getter_wps_device_device_type); 249 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_setter_wps_device_device_type); 250 1.1.1.8 christos 251 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_getter_mesh_peers); 252 1.1.1.8 christos DECLARE_ACCESSOR(wpas_dbus_getter_mesh_group); 253 1.1.1.5 christos 254 1.1.1.10 christos DECLARE_ACCESSOR(wpas_dbus_getter_signal_change); 255 1.1.1.10 christos 256 1.1.1.5 christos DBusMessage * wpas_dbus_handler_tdls_discover(DBusMessage *message, 257 1.1.1.5 christos struct wpa_supplicant *wpa_s); 258 1.1.1.5 christos DBusMessage * wpas_dbus_handler_tdls_setup(DBusMessage *message, 259 1.1.1.5 christos struct wpa_supplicant *wpa_s); 260 1.1.1.5 christos DBusMessage * wpas_dbus_handler_tdls_status(DBusMessage *message, 261 1.1.1.5 christos struct wpa_supplicant *wpa_s); 262 1.1.1.5 christos DBusMessage * wpas_dbus_handler_tdls_teardown(DBusMessage *message, 263 1.1.1.5 christos struct wpa_supplicant *wpa_s); 264 1.1.1.8 christos DBusMessage * 265 1.1.1.8 christos wpas_dbus_handler_tdls_channel_switch(DBusMessage *message, 266 1.1.1.8 christos struct wpa_supplicant *wpa_s); 267 1.1.1.8 christos DBusMessage * 268 1.1.1.8 christos wpas_dbus_handler_tdls_cancel_channel_switch(DBusMessage *message, 269 1.1.1.8 christos struct wpa_supplicant *wpa_s); 270 1.1.1.5 christos 271 1.1.1.7 christos DBusMessage * wpas_dbus_handler_vendor_elem_add(DBusMessage *message, 272 1.1.1.7 christos struct wpa_supplicant *wpa_s); 273 1.1.1.7 christos DBusMessage * wpas_dbus_handler_vendor_elem_get(DBusMessage *message, 274 1.1.1.7 christos struct wpa_supplicant *wpa_s); 275 1.1.1.7 christos DBusMessage * wpas_dbus_handler_vendor_elem_remove( 276 1.1.1.7 christos DBusMessage *message, struct wpa_supplicant *wpa_s); 277 1.1.1.7 christos 278 1.1.1.7 christos DBusMessage * wpas_dbus_handler_save_config(DBusMessage *message, 279 1.1.1.7 christos struct wpa_supplicant *wpa_s); 280 1.1.1.7 christos 281 1.1 christos DBusMessage * wpas_dbus_error_invalid_args(DBusMessage *message, 282 1.1 christos const char *arg); 283 1.1 christos DBusMessage * wpas_dbus_error_unknown_error(DBusMessage *message, 284 1.1 christos const char *arg); 285 1.1.1.6 christos DBusMessage * wpas_dbus_error_no_memory(DBusMessage *message); 286 1.1 christos 287 1.1.1.4 christos DBusMessage * wpas_dbus_handler_subscribe_preq( 288 1.1.1.4 christos DBusMessage *message, struct wpa_supplicant *wpa_s); 289 1.1.1.4 christos DBusMessage * wpas_dbus_handler_unsubscribe_preq( 290 1.1.1.4 christos DBusMessage *message, struct wpa_supplicant *wpa_s); 291 1.1.1.4 christos 292 1.1 christos #endif /* CTRL_IFACE_DBUS_HANDLERS_NEW_H */ 293