1214501Srpaulo/* 2214501Srpaulo * WPA Supplicant / dbus-based control interface 3214501Srpaulo * Copyright (c) 2006, Dan Williams <dcbw@redhat.com> and Red Hat, Inc. 4214501Srpaulo * Copyright (c) 2009-2010, Witold Sowa <witold.sowa@gmail.com> 5214501Srpaulo * 6252190Srpaulo * This software may be distributed under the terms of the BSD license. 7252190Srpaulo * See README for more details. 8214501Srpaulo */ 9214501Srpaulo 10214501Srpaulo#ifndef CTRL_IFACE_DBUS_NEW_HANDLERS_H 11214501Srpaulo#define CTRL_IFACE_DBUS_NEW_HANDLERS_H 12214501Srpaulo 13337817Scy#include "dbus_new_helpers.h" 14337817Scy 15214501Srpaulostruct network_handler_args { 16214501Srpaulo struct wpa_supplicant *wpa_s; 17214501Srpaulo struct wpa_ssid *ssid; 18214501Srpaulo}; 19214501Srpaulo 20214501Srpaulostruct bss_handler_args { 21214501Srpaulo struct wpa_supplicant *wpa_s; 22214501Srpaulo unsigned int id; 23214501Srpaulo}; 24214501Srpaulo 25346981Scystruct sta_handler_args { 26346981Scy struct wpa_supplicant *wpa_s; 27346981Scy const u8 *sta; 28346981Scy}; 29346981Scy 30252190Srpaulodbus_bool_t wpas_dbus_simple_property_getter(DBusMessageIter *iter, 31252190Srpaulo const int type, 32252190Srpaulo const void *val, 33252190Srpaulo DBusError *error); 34214501Srpaulo 35252190Srpaulodbus_bool_t wpas_dbus_simple_property_setter(DBusMessageIter *iter, 36252190Srpaulo DBusError *error, 37252190Srpaulo const int type, void *val); 38214501Srpaulo 39252190Srpaulodbus_bool_t wpas_dbus_simple_array_property_getter(DBusMessageIter *iter, 40252190Srpaulo const int type, 41252190Srpaulo const void *array, 42252190Srpaulo size_t array_len, 43252190Srpaulo DBusError *error); 44214501Srpaulo 45252190Srpaulodbus_bool_t wpas_dbus_simple_array_array_property_getter(DBusMessageIter *iter, 46252190Srpaulo const int type, 47252190Srpaulo struct wpabuf **array, 48252190Srpaulo size_t array_len, 49252190Srpaulo DBusError *error); 50252190Srpaulo 51346981Scydbus_bool_t wpas_dbus_string_property_getter(DBusMessageIter *iter, 52346981Scy const void *val, 53346981Scy DBusError *error); 54346981Scy 55214501SrpauloDBusMessage * wpas_dbus_handler_create_interface(DBusMessage *message, 56214501Srpaulo struct wpa_global *global); 57214501Srpaulo 58214501SrpauloDBusMessage * wpas_dbus_handler_remove_interface(DBusMessage *message, 59214501Srpaulo struct wpa_global *global); 60214501Srpaulo 61214501SrpauloDBusMessage * wpas_dbus_handler_get_interface(DBusMessage *message, 62214501Srpaulo struct wpa_global *global); 63214501Srpaulo 64337817ScyDBusMessage * wpas_dbus_handler_expect_disconnect(DBusMessage *message, 65337817Scy struct wpa_global *global); 66214501Srpaulo 67337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_debug_level); 68337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_debug_timestamp); 69337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_debug_show_keys); 70337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_debug_level); 71337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_debug_timestamp); 72337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_debug_show_keys); 73337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_interfaces); 74337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_eap_methods); 75337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_global_capabilities); 76337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_iface_global); 77337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_iface_global); 78214501Srpaulo 79214501SrpauloDBusMessage * wpas_dbus_handler_scan(DBusMessage *message, 80214501Srpaulo struct wpa_supplicant *wpa_s); 81214501Srpaulo 82346981ScyDBusMessage * wpas_dbus_handler_abort_scan(DBusMessage *message, 83346981Scy struct wpa_supplicant *wpa_s); 84346981Scy 85281806SrpauloDBusMessage * wpas_dbus_handler_signal_poll(DBusMessage *message, 86281806Srpaulo struct wpa_supplicant *wpa_s); 87281806Srpaulo 88214501SrpauloDBusMessage * wpas_dbus_handler_disconnect(DBusMessage *message, 89214501Srpaulo struct wpa_supplicant *wpa_s); 90214501Srpaulo 91252190Srpaulodbus_bool_t set_network_properties(struct wpa_supplicant *wpa_s, 92252190Srpaulo struct wpa_ssid *ssid, 93252190Srpaulo DBusMessageIter *iter, 94252190Srpaulo DBusError *error); 95252190Srpaulo 96214501SrpauloDBusMessage * wpas_dbus_handler_add_network(DBusMessage *message, 97214501Srpaulo struct wpa_supplicant *wpa_s); 98214501Srpaulo 99252190SrpauloDBusMessage * wpas_dbus_handler_reassociate(DBusMessage *message, 100252190Srpaulo struct wpa_supplicant *wpa_s); 101252190Srpaulo 102281806SrpauloDBusMessage * wpas_dbus_handler_reattach(DBusMessage *message, 103281806Srpaulo struct wpa_supplicant *wpa_s); 104281806Srpaulo 105289549SrpauloDBusMessage * wpas_dbus_handler_reconnect(DBusMessage *message, 106289549Srpaulo struct wpa_supplicant *wpa_s); 107289549Srpaulo 108214501SrpauloDBusMessage * wpas_dbus_handler_remove_network(DBusMessage *message, 109214501Srpaulo struct wpa_supplicant *wpa_s); 110214501Srpaulo 111252190SrpauloDBusMessage * wpas_dbus_handler_remove_all_networks( 112252190Srpaulo DBusMessage *message, struct wpa_supplicant *wpa_s); 113252190Srpaulo 114214501SrpauloDBusMessage * wpas_dbus_handler_select_network(DBusMessage *message, 115214501Srpaulo struct wpa_supplicant *wpa_s); 116214501Srpaulo 117252190SrpauloDBusMessage * wpas_dbus_handler_network_reply(DBusMessage *message, 118252190Srpaulo struct wpa_supplicant *wpa_s); 119252190Srpaulo 120214501SrpauloDBusMessage * wpas_dbus_handler_add_blob(DBusMessage *message, 121214501Srpaulo struct wpa_supplicant *wpa_s); 122214501Srpaulo 123214501SrpauloDBusMessage * wpas_dbus_handler_get_blob(DBusMessage *message, 124214501Srpaulo struct wpa_supplicant *wpa_s); 125214501Srpaulo 126214501SrpauloDBusMessage * wpas_dbus_handler_remove_blob(DBusMessage *message, 127214501Srpaulo struct wpa_supplicant *wpa_s); 128214501Srpaulo 129281806SrpauloDBusMessage * wpas_dbus_handler_set_pkcs11_engine_and_module_path( 130281806Srpaulo DBusMessage *message, struct wpa_supplicant *wpa_s); 131281806Srpaulo 132252190SrpauloDBusMessage * wpas_dbus_handler_flush_bss(DBusMessage *message, 133252190Srpaulo struct wpa_supplicant *wpa_s); 134214501Srpaulo 135252190SrpauloDBusMessage * wpas_dbus_handler_autoscan(DBusMessage *message, 136252190Srpaulo struct wpa_supplicant *wpa_s); 137214501Srpaulo 138281806SrpauloDBusMessage * wpas_dbus_handler_eap_logoff(DBusMessage *message, 139281806Srpaulo struct wpa_supplicant *wpa_s); 140281806Srpaulo 141281806SrpauloDBusMessage * wpas_dbus_handler_eap_logon(DBusMessage *message, 142281806Srpaulo struct wpa_supplicant *wpa_s); 143281806Srpaulo 144337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_capabilities); 145337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_state); 146337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_scanning); 147337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_ap_scan); 148337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_ap_scan); 149337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_fast_reauth); 150337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_fast_reauth); 151337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_disconnect_reason); 152337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_disassociate_reason); 153346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_auth_status_code); 154337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_assoc_status_code); 155346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_roam_time); 156346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_roam_complete); 157346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_session_length); 158346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_tm_status); 159337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_expire_age); 160337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_bss_expire_age); 161337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_expire_count); 162337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_bss_expire_count); 163337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_country); 164337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_country); 165337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_scan_interval); 166337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_scan_interval); 167337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_ifname); 168337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_driver); 169337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bridge_ifname); 170337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_config_file); 171337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_current_bss); 172337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_current_network); 173337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_current_auth_mode); 174337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bsss); 175337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_networks); 176337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_pkcs11_engine_path); 177337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_pkcs11_module_path); 178337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_blobs); 179346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_stas); 180346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_sta_address); 181346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_sta_aid); 182346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_sta_caps); 183346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_sta_rx_packets); 184346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_sta_tx_packets); 185346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_sta_tx_bytes); 186346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_sta_rx_bytes); 187337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_bssid); 188337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_ssid); 189337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_privacy); 190337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_mode); 191337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_signal); 192337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_frequency); 193337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_rates); 194337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_wpa); 195337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_rsn); 196337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_wps); 197337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_ies); 198337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_bss_age); 199337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_enabled); 200337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_enabled); 201337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_network_properties); 202337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_network_properties); 203214501Srpaulo 204214501SrpauloDBusMessage * wpas_dbus_handler_wps_start(DBusMessage *message, 205214501Srpaulo struct wpa_supplicant *wpa_s); 206214501Srpaulo 207289549SrpauloDBusMessage * wpas_dbus_handler_wps_cancel(DBusMessage *message, 208289549Srpaulo struct wpa_supplicant *wpa_s); 209289549Srpaulo 210337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_process_credentials); 211337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_process_credentials); 212337817ScyDECLARE_ACCESSOR(wpas_dbus_getter_config_methods); 213337817ScyDECLARE_ACCESSOR(wpas_dbus_setter_config_methods); 214346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_wps_device_name); 215346981ScyDECLARE_ACCESSOR(wpas_dbus_setter_wps_device_name); 216346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_wps_manufacturer); 217346981ScyDECLARE_ACCESSOR(wpas_dbus_setter_wps_manufacturer); 218346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_wps_device_model_name); 219346981ScyDECLARE_ACCESSOR(wpas_dbus_setter_wps_device_model_name); 220346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_wps_device_model_number); 221346981ScyDECLARE_ACCESSOR(wpas_dbus_setter_wps_device_model_number); 222346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_wps_device_serial_number); 223346981ScyDECLARE_ACCESSOR(wpas_dbus_setter_wps_device_serial_number); 224346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_wps_device_device_type); 225346981ScyDECLARE_ACCESSOR(wpas_dbus_setter_wps_device_device_type); 226214501Srpaulo 227346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_mesh_peers); 228346981ScyDECLARE_ACCESSOR(wpas_dbus_getter_mesh_group); 229346981Scy 230281806SrpauloDBusMessage * wpas_dbus_handler_tdls_discover(DBusMessage *message, 231281806Srpaulo struct wpa_supplicant *wpa_s); 232281806SrpauloDBusMessage * wpas_dbus_handler_tdls_setup(DBusMessage *message, 233281806Srpaulo struct wpa_supplicant *wpa_s); 234281806SrpauloDBusMessage * wpas_dbus_handler_tdls_status(DBusMessage *message, 235281806Srpaulo struct wpa_supplicant *wpa_s); 236281806SrpauloDBusMessage * wpas_dbus_handler_tdls_teardown(DBusMessage *message, 237281806Srpaulo struct wpa_supplicant *wpa_s); 238346981ScyDBusMessage * 239346981Scywpas_dbus_handler_tdls_channel_switch(DBusMessage *message, 240346981Scy struct wpa_supplicant *wpa_s); 241346981ScyDBusMessage * 242346981Scywpas_dbus_handler_tdls_cancel_channel_switch(DBusMessage *message, 243346981Scy struct wpa_supplicant *wpa_s); 244281806Srpaulo 245337817ScyDBusMessage * wpas_dbus_handler_vendor_elem_add(DBusMessage *message, 246337817Scy struct wpa_supplicant *wpa_s); 247337817ScyDBusMessage * wpas_dbus_handler_vendor_elem_get(DBusMessage *message, 248337817Scy struct wpa_supplicant *wpa_s); 249337817ScyDBusMessage * wpas_dbus_handler_vendor_elem_remove( 250337817Scy DBusMessage *message, struct wpa_supplicant *wpa_s); 251337817Scy 252337817ScyDBusMessage * wpas_dbus_handler_save_config(DBusMessage *message, 253337817Scy struct wpa_supplicant *wpa_s); 254337817Scy 255214501SrpauloDBusMessage * wpas_dbus_error_invalid_args(DBusMessage *message, 256214501Srpaulo const char *arg); 257214501SrpauloDBusMessage * wpas_dbus_error_unknown_error(DBusMessage *message, 258214501Srpaulo const char *arg); 259281806SrpauloDBusMessage * wpas_dbus_error_no_memory(DBusMessage *message); 260214501Srpaulo 261252190SrpauloDBusMessage * wpas_dbus_handler_subscribe_preq( 262252190Srpaulo DBusMessage *message, struct wpa_supplicant *wpa_s); 263252190SrpauloDBusMessage * wpas_dbus_handler_unsubscribe_preq( 264252190Srpaulo DBusMessage *message, struct wpa_supplicant *wpa_s); 265252190Srpaulo 266214501Srpaulo#endif /* CTRL_IFACE_DBUS_HANDLERS_NEW_H */ 267