dbus: Verify dbus_message_new_method_return() return value before use
[hostap-gosc2009.git] / wpa_supplicant / dbus / dbus.h
blobcab7faf74b929c31105da8538d800f4f7f33ad52
1 /*
2 * WPA Supplicant / dbus-based control interface
3 * Copyright (c) 2006, Dan Williams <dcbw@redhat.com> and Red Hat, Inc.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
9 * Alternatively, this software may be distributed under the terms of BSD
10 * license.
12 * See README and COPYING for more details.
15 #ifndef CTRL_IFACE_DBUS_H
16 #define CTRL_IFACE_DBUS_H
18 struct wps_credential;
20 #ifdef CONFIG_CTRL_IFACE_DBUS
22 #ifndef SIGPOLL
23 #ifdef SIGIO
25 * If we do not have SIGPOLL, try to use SIGIO instead. This is needed for
26 * FreeBSD.
28 #define SIGPOLL SIGIO
29 #endif
30 #endif
32 #include <dbus/dbus.h>
34 #define WPAS_DBUS_OBJECT_PATH_MAX 150
36 #define WPAS_DBUS_SERVICE "fi.epitest.hostap.WPASupplicant"
37 #define WPAS_DBUS_PATH "/fi/epitest/hostap/WPASupplicant"
38 #define WPAS_DBUS_INTERFACE "fi.epitest.hostap.WPASupplicant"
40 #define WPAS_DBUS_PATH_INTERFACES WPAS_DBUS_PATH "/Interfaces"
41 #define WPAS_DBUS_IFACE_INTERFACE WPAS_DBUS_INTERFACE ".Interface"
43 #define WPAS_DBUS_NETWORKS_PART "Networks"
44 #define WPAS_DBUS_IFACE_NETWORK WPAS_DBUS_INTERFACE ".Network"
46 #define WPAS_DBUS_BSSIDS_PART "BSSIDs"
47 #define WPAS_DBUS_IFACE_BSSID WPAS_DBUS_INTERFACE ".BSSID"
50 /* Errors */
51 #define WPAS_ERROR_INVALID_NETWORK \
52 WPAS_DBUS_IFACE_INTERFACE ".InvalidNetwork"
53 #define WPAS_ERROR_INVALID_BSSID \
54 WPAS_DBUS_IFACE_INTERFACE ".InvalidBSSID"
56 #define WPAS_ERROR_INVALID_OPTS \
57 WPAS_DBUS_INTERFACE ".InvalidOptions"
58 #define WPAS_ERROR_INVALID_IFACE \
59 WPAS_DBUS_INTERFACE ".InvalidInterface"
61 #define WPAS_ERROR_ADD_ERROR \
62 WPAS_DBUS_INTERFACE ".AddError"
63 #define WPAS_ERROR_EXISTS_ERROR \
64 WPAS_DBUS_INTERFACE ".ExistsError"
65 #define WPAS_ERROR_REMOVE_ERROR \
66 WPAS_DBUS_INTERFACE ".RemoveError"
68 #define WPAS_ERROR_SCAN_ERROR \
69 WPAS_DBUS_IFACE_INTERFACE ".ScanError"
70 #define WPAS_ERROR_ADD_NETWORK_ERROR \
71 WPAS_DBUS_IFACE_INTERFACE ".AddNetworkError"
72 #define WPAS_ERROR_INTERNAL_ERROR \
73 WPAS_DBUS_IFACE_INTERFACE ".InternalError"
74 #define WPAS_ERROR_REMOVE_NETWORK_ERROR \
75 WPAS_DBUS_IFACE_INTERFACE ".RemoveNetworkError"
77 #define WPAS_ERROR_WPS_PBC_ERROR \
78 WPAS_DBUS_IFACE_INTERFACE ".WpsPbcError"
79 #define WPAS_ERROR_WPS_PIN_ERROR \
80 WPAS_DBUS_IFACE_INTERFACE ".WpsPinError"
81 #define WPAS_ERROR_WPS_REG_ERROR \
82 WPAS_DBUS_IFACE_INTERFACE ".WpsRegError"
84 #define WPAS_DBUS_BSSID_FORMAT "%02x%02x%02x%02x%02x%02x"
86 struct wpa_global;
87 struct wpa_supplicant;
89 struct ctrl_iface_dbus_priv *
90 wpa_supplicant_dbus_ctrl_iface_init(struct wpa_global *global);
91 void wpa_supplicant_dbus_ctrl_iface_deinit(struct ctrl_iface_dbus_priv *iface);
92 void wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s);
93 void wpa_supplicant_dbus_notify_scanning(struct wpa_supplicant *wpa_s);
94 void wpa_supplicant_dbus_notify_state_change(struct wpa_supplicant *wpa_s,
95 enum wpa_states new_state,
96 enum wpa_states old_state);
97 void wpa_supplicant_dbus_notify_wps_cred(struct wpa_supplicant *wpa_s,
98 const struct wps_credential *cred);
100 char * wpas_dbus_decompose_object_path(const char *path, char **network,
101 char **bssid);
103 int wpas_dbus_register_iface(struct wpa_supplicant *wpa_s);
104 int wpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s);
107 /* Methods internal to the dbus control interface */
108 u32 wpa_supplicant_dbus_next_objid(struct ctrl_iface_dbus_priv *iface);
110 int wpa_supplicant_set_dbus_path(struct wpa_supplicant *wpa_s,
111 const char *path);
112 const char *wpa_supplicant_get_dbus_path(struct wpa_supplicant *wpa_s);
113 struct wpa_supplicant * wpa_supplicant_get_iface_by_dbus_path(
114 struct wpa_global *global, const char *path);
116 DBusMessage * wpas_dbus_new_invalid_iface_error(DBusMessage *message);
117 DBusMessage * wpas_dbus_new_invalid_network_error(DBusMessage *message);
119 #else /* CONFIG_CTRL_IFACE_DBUS */
121 static inline struct ctrl_iface_dbus_priv *
122 wpa_supplicant_dbus_ctrl_iface_init(struct wpa_global *global)
124 return (struct ctrl_iface_dbus_priv *) 1;
127 static inline void
128 wpa_supplicant_dbus_ctrl_iface_deinit(struct ctrl_iface_dbus_priv *iface)
132 static inline void
133 wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s)
137 static inline void
138 wpa_supplicant_dbus_notify_scanning(struct wpa_supplicant *wpa_s)
142 static inline void
143 wpa_supplicant_dbus_notify_state_change(struct wpa_supplicant *wpa_s,
144 enum wpa_states new_state,
145 enum wpa_states old_state)
149 static inline void
150 wpa_supplicant_dbus_notify_wps_cred(struct wpa_supplicant *wpa_s,
151 const struct wps_credential *cred)
155 static inline int
156 wpas_dbus_register_iface(struct wpa_supplicant *wpa_s)
158 return 0;
161 static inline int
162 wpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s)
164 return 0;
167 #endif /* CONFIG_CTRL_IFACE_DBUS */
169 #endif /* CTRL_IFACE_DBUS_H */