fix packaging
[adaptation/panda/wpa_supplicant.git] / packaging / 0003-dbus-Add-a-Country-global-property.patch
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
5
6 This read-write property allows to pass an ISO 3166-1 alpha2 string to the
7 cfg80211 layer, through D-Bus.
8 ---
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(-)
13
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[] = {
19           NULL,
20           R
21         },
22 +       { "Country", WPAS_DBUS_NEW_INTERFACE, "s",
23 +         (WPADBusPropertyAccessor) wpas_dbus_getter_country,
24 +         (WPADBusPropertyAccessor) wpas_dbus_setter_country,
25 +         RW
26 +       },
27         { NULL, NULL, NULL, NULL, NULL, 0 }
28  };
29  
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)
35         return reply;
36  }
37  
38 +/**
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
43 + *
44 + * Getter for "Country" property.
45 + */
46 +DBusMessage * wpas_dbus_getter_country(DBusMessage *message,
47 +                                      struct wpa_global *global)
48 +{
49 +       DBusMessage *reply;
50 +       struct wpa_supplicant *wpa_s;
51 +       char *country;
52 +
53 +       wpa_s = global->ifaces;
54 +
55 +       if (wpa_s == NULL)
56 +               return NULL;
57 +
58 +       country = wpa_drv_get_country(wpa_s);
59 +
60 +       reply = wpas_dbus_simple_property_getter(message, DBUS_TYPE_STRING,
61 +                                               &country);
62 +
63 +       os_free(country);
64 +
65 +       return reply;
66 +}
67 +
68 +
69 +/**
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
74 + *
75 + * Setter function for the "Country" property.
76 + */
77 +DBusMessage * wpas_dbus_setter_country(DBusMessage *message,
78 +                                      struct wpa_global *global)
79 +{
80 +       struct wpa_supplicant *wpa_s;
81 +       DBusMessage *reply = NULL;
82 +       char *country;
83 +
84 +       wpa_s = global->ifaces;
85 +
86 +       if (wpa_s == NULL)
87 +               return NULL;
88 +
89 +       reply = wpas_dbus_simple_property_setter(message, DBUS_TYPE_STRING,
90 +                                                &country);
91 +       if (reply)
92 +               return reply;
93 +
94 +       if (wpa_drv_set_country(wpa_s, country))
95 +               return wpas_dbus_error_invalid_args(message, "Invalid country");
96 +
97 +       return NULL;
98 +}
99  
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,
108                                            void *nothing);
109  
110 +DBusMessage * wpas_dbus_getter_country(DBusMessage *message,
111 +                                      struct wpa_global *global);
112 +
113 +DBusMessage * wpas_dbus_setter_country(DBusMessage *message,
114 +                                      struct wpa_global *global);
115 +
116  DBusMessage * wpas_dbus_handler_scan(DBusMessage *message,
117                                      struct wpa_supplicant *wpa_s);
118  
119 -- 
120 1.7.2.3
121