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