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