1 From 079bd8b4cbe03d0beb2f7e17e0df4b851b2e6318 Mon Sep 17 00:00:00 2001
2 From: Samuel Ortiz <sameo@linux.intel.com>
3 Date: Wed, 15 Dec 2010 20:37:16 +0100
4 Subject: [PATCH 3/3] dbus: Add a Country global property
6 This read-write property allows to pass an ISO 3166-1 alpha2 string to the
7 cfg80211 layer, through D-Bus.
9 wpa_supplicant/dbus/dbus_new.c | 5 +++
10 wpa_supplicant/dbus/dbus_new_handlers.c | 61 +++++++++++++++++++++++++++++++
11 wpa_supplicant/dbus/dbus_new_handlers.h | 6 +++
12 3 files changed, 72 insertions(+), 0 deletions(-)
14 diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c
15 index bdfbbac..64e2887 100644
16 --- a/wpa_supplicant/dbus/dbus_new.c
17 +++ b/wpa_supplicant/dbus/dbus_new.c
18 @@ -879,6 +879,11 @@ static const struct wpa_dbus_property_desc wpas_dbus_global_properties[] = {
22 + { "Country", WPAS_DBUS_NEW_INTERFACE, "s",
23 + (WPADBusPropertyAccessor) wpas_dbus_getter_country,
24 + (WPADBusPropertyAccessor) wpas_dbus_setter_country,
27 { NULL, NULL, NULL, NULL, NULL, 0 }
30 diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c
31 index e2b5e50..6a0fe10 100644
32 --- a/wpa_supplicant/dbus/dbus_new_handlers.c
33 +++ b/wpa_supplicant/dbus/dbus_new_handlers.c
34 @@ -923,6 +923,67 @@ DBusMessage * wpas_dbus_getter_eap_methods(DBusMessage *message, void *nothing)
39 + * wpas_dbus_getter_country - Get the ISO/IEC alpha2 country code
40 + * @message: Pointer to incoming dbus message
41 + * @global: %wpa_supplicant global data structure
42 + * Returns: DBus message with the alpha2 string
44 + * Getter for "Country" property.
46 +DBusMessage * wpas_dbus_getter_country(DBusMessage *message,
47 + struct wpa_global *global)
50 + struct wpa_supplicant *wpa_s;
53 + wpa_s = global->ifaces;
58 + country = wpa_drv_get_country(wpa_s);
60 + reply = wpas_dbus_simple_property_getter(message, DBUS_TYPE_STRING,
70 + * wpas_dbus_setter_country - Set the ISO/IEC alpha2 country code
71 + * @message: Pointer to incoming dbus message
72 + * @global: %wpa_supplicant global data structure
73 + * Returns: %NULL or DBus error message
75 + * Setter function for the "Country" property.
77 +DBusMessage * wpas_dbus_setter_country(DBusMessage *message,
78 + struct wpa_global *global)
80 + struct wpa_supplicant *wpa_s;
81 + DBusMessage *reply = NULL;
84 + wpa_s = global->ifaces;
89 + reply = wpas_dbus_simple_property_setter(message, DBUS_TYPE_STRING,
94 + if (wpa_drv_set_country(wpa_s, country))
95 + return wpas_dbus_error_invalid_args(message, "Invalid country");
100 static int wpas_dbus_get_scan_type(DBusMessage *message, DBusMessageIter *var,
101 char **type, DBusMessage **reply)
102 diff --git a/wpa_supplicant/dbus/dbus_new_handlers.h b/wpa_supplicant/dbus/dbus_new_handlers.h
103 index 3cdf9cb..3d0b9d6 100644
104 --- a/wpa_supplicant/dbus/dbus_new_handlers.h
105 +++ b/wpa_supplicant/dbus/dbus_new_handlers.h
106 @@ -71,6 +71,12 @@ DBusMessage * wpas_dbus_getter_interfaces(DBusMessage *message,
107 DBusMessage * wpas_dbus_getter_eap_methods(DBusMessage *message,
110 +DBusMessage * wpas_dbus_getter_country(DBusMessage *message,
111 + struct wpa_global *global);
113 +DBusMessage * wpas_dbus_setter_country(DBusMessage *message,
114 + struct wpa_global *global);
116 DBusMessage * wpas_dbus_handler_scan(DBusMessage *message,
117 struct wpa_supplicant *wpa_s);