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
12
* See README and COPYING for more details.
15
#ifndef CTRL_IFACE_DBUS_H
16
#define CTRL_IFACE_DBUS_H
18
#ifdef CONFIG_CTRL_IFACE_DBUS
23
* If we do not have SIGPOLL, try to use SIGIO instead. This is needed for
30
#include <dbus/dbus.h>
32
#define WPAS_DBUS_OBJECT_PATH_MAX 150
34
#define WPAS_DBUS_SERVICE "fi.epitest.hostap.WPASupplicant"
35
#define WPAS_DBUS_PATH "/fi/epitest/hostap/WPASupplicant"
36
#define WPAS_DBUS_INTERFACE "fi.epitest.hostap.WPASupplicant"
38
#define WPAS_DBUS_PATH_INTERFACES WPAS_DBUS_PATH "/Interfaces"
39
#define WPAS_DBUS_IFACE_INTERFACE WPAS_DBUS_INTERFACE ".Interface"
41
#define WPAS_DBUS_NETWORKS_PART "Networks"
42
#define WPAS_DBUS_IFACE_NETWORK WPAS_DBUS_INTERFACE ".Network"
44
#define WPAS_DBUS_BSSIDS_PART "BSSIDs"
45
#define WPAS_DBUS_IFACE_BSSID WPAS_DBUS_INTERFACE ".BSSID"
49
#define WPAS_ERROR_INVALID_NETWORK \
50
WPAS_DBUS_IFACE_INTERFACE ".InvalidNetwork"
51
#define WPAS_ERROR_INVALID_BSSID \
52
WPAS_DBUS_IFACE_INTERFACE ".InvalidBSSID"
54
#define WPAS_ERROR_INVALID_OPTS \
55
WPAS_DBUS_INTERFACE ".InvalidOptions"
56
#define WPAS_ERROR_INVALID_IFACE \
57
WPAS_DBUS_INTERFACE ".InvalidInterface"
59
#define WPAS_ERROR_ADD_ERROR \
60
WPAS_DBUS_INTERFACE ".AddError"
61
#define WPAS_ERROR_EXISTS_ERROR \
62
WPAS_DBUS_INTERFACE ".ExistsError"
63
#define WPAS_ERROR_REMOVE_ERROR \
64
WPAS_DBUS_INTERFACE ".RemoveError"
66
#define WPAS_ERROR_SCAN_ERROR \
67
WPAS_DBUS_IFACE_INTERFACE ".ScanError"
68
#define WPAS_ERROR_ADD_NETWORK_ERROR \
69
WPAS_DBUS_IFACE_INTERFACE ".AddNetworkError"
70
#define WPAS_ERROR_INTERNAL_ERROR \
71
WPAS_DBUS_IFACE_INTERFACE ".InternalError"
72
#define WPAS_ERROR_REMOVE_NETWORK_ERROR \
73
WPAS_DBUS_IFACE_INTERFACE ".RemoveNetworkError"
75
#define WPAS_DBUS_BSSID_FORMAT "%02x%02x%02x%02x%02x%02x"
78
struct wpa_supplicant;
80
struct ctrl_iface_dbus_priv *
81
wpa_supplicant_dbus_ctrl_iface_init(struct wpa_global *global);
82
void wpa_supplicant_dbus_ctrl_iface_deinit(struct ctrl_iface_dbus_priv *iface);
83
void wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s);
84
void wpa_supplicant_dbus_notify_state_change(struct wpa_supplicant *wpa_s,
86
wpa_states old_state);
88
char * wpas_dbus_decompose_object_path(const char *path, char **network,
91
int wpas_dbus_register_iface(struct wpa_supplicant *wpa_s);
92
int wpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s);
95
/* Methods internal to the dbus control interface */
96
u32 wpa_supplicant_dbus_next_objid(struct ctrl_iface_dbus_priv *iface);
98
int wpa_supplicant_set_dbus_path(struct wpa_supplicant *wpa_s,
100
const char *wpa_supplicant_get_dbus_path(struct wpa_supplicant *wpa_s);
101
struct wpa_supplicant * wpa_supplicant_get_iface_by_dbus_path(
102
struct wpa_global *global, const char *path);
104
DBusMessage * wpas_dbus_new_invalid_iface_error(DBusMessage *message);
105
DBusMessage * wpas_dbus_new_invalid_network_error(DBusMessage *message);
107
#else /* CONFIG_CTRL_IFACE_DBUS */
109
static inline struct ctrl_iface_dbus_priv *
110
wpa_supplicant_dbus_ctrl_iface_init(struct wpa_global *global)
112
return (struct ctrl_iface_dbus_priv *) 1;
116
wpa_supplicant_dbus_ctrl_iface_deinit(struct ctrl_iface_dbus_priv *iface)
121
wpa_supplicant_dbus_notify_scan_results(struct wpa_supplicant *wpa_s)
126
wpa_supplicant_dbus_notify_state_change(struct wpa_supplicant *wpa_s,
127
wpa_states new_state,
128
wpa_states old_state)
133
wpas_dbus_register_iface(struct wpa_supplicant *wpa_s)
139
wpas_dbus_unregister_iface(struct wpa_supplicant *wpa_s)
144
#endif /* CONFIG_CTRL_IFACE_DBUS */
146
#endif /* CTRL_IFACE_DBUS_H */