D-Bus: Add ConfigFile parameter into the interface properties

This patch aims to expose the configuration file path as an interface
property, like is done with the driver and the bridge name. Doing so,
higher layer programs become responsible to recreate interfaces with the
correct configuration file path when programs need to remove them.

Signed-off-by: Jose Blanquicet <blanquicet@gmail.com>
This commit is contained in:
Jose Blanquicet 2016-08-23 14:16:00 +02:00 committed by Jouni Malinen
parent 7dcec24881
commit b44d9c760f
4 changed files with 35 additions and 0 deletions

View file

@ -680,6 +680,11 @@ fi.w1.wpa_supplicant1.CreateInterface.
<p>Name of driver used by the interface, e.g., nl80211.</p> <p>Name of driver used by the interface, e.g., nl80211.</p>
</li> </li>
<li>
<h3>ConfigFile - s - (read)</h3>
<p>Configuration file path. Returns an empty string if no configuration file is in use.</p>
</li>
<li> <li>
<h3>CurrentBSS - o - (read)</h3> <h3>CurrentBSS - o - (read)</h3>
<p>Path to D-Bus object representing BSS which wpa_supplicant is associated with, or "/" if is not associated at all.</p> <p>Path to D-Bus object representing BSS which wpa_supplicant is associated with, or "/" if is not associated at all.</p>

View file

@ -3158,6 +3158,11 @@ static const struct wpa_dbus_property_desc wpas_dbus_interface_properties[] = {
NULL, NULL,
NULL NULL
}, },
{ "ConfigFile", WPAS_DBUS_NEW_IFACE_INTERFACE, "s",
wpas_dbus_getter_config_file,
NULL,
NULL
},
{ "CurrentBSS", WPAS_DBUS_NEW_IFACE_INTERFACE, "o", { "CurrentBSS", WPAS_DBUS_NEW_IFACE_INTERFACE, "o",
wpas_dbus_getter_current_bss, wpas_dbus_getter_current_bss,
NULL, NULL,

View file

@ -3239,6 +3239,30 @@ dbus_bool_t wpas_dbus_getter_bridge_ifname(
} }
/**
* wpas_dbus_getter_config_file - Get interface configuration file path
* @iter: Pointer to incoming dbus message iter
* @error: Location to store error on failure
* @user_data: Function specific data
* Returns: TRUE on success, FALSE on failure
*
* Getter for "ConfigFile" property.
*/
dbus_bool_t wpas_dbus_getter_config_file(
const struct wpa_dbus_property_desc *property_desc,
DBusMessageIter *iter, DBusError *error, void *user_data)
{
struct wpa_supplicant *wpa_s = user_data;
char *confname = "";
if (wpa_s->confname)
confname = wpa_s->confname;
return wpas_dbus_simple_property_getter(iter, DBUS_TYPE_STRING,
&confname, error);
}
/** /**
* wpas_dbus_getter_bsss - Get array of BSSs objects * wpas_dbus_getter_bsss - Get array of BSSs objects
* @iter: Pointer to incoming dbus message iter * @iter: Pointer to incoming dbus message iter

View file

@ -150,6 +150,7 @@ DECLARE_ACCESSOR(wpas_dbus_setter_scan_interval);
DECLARE_ACCESSOR(wpas_dbus_getter_ifname); DECLARE_ACCESSOR(wpas_dbus_getter_ifname);
DECLARE_ACCESSOR(wpas_dbus_getter_driver); DECLARE_ACCESSOR(wpas_dbus_getter_driver);
DECLARE_ACCESSOR(wpas_dbus_getter_bridge_ifname); DECLARE_ACCESSOR(wpas_dbus_getter_bridge_ifname);
DECLARE_ACCESSOR(wpas_dbus_getter_config_file);
DECLARE_ACCESSOR(wpas_dbus_getter_current_bss); DECLARE_ACCESSOR(wpas_dbus_getter_current_bss);
DECLARE_ACCESSOR(wpas_dbus_getter_current_network); DECLARE_ACCESSOR(wpas_dbus_getter_current_network);
DECLARE_ACCESSOR(wpas_dbus_getter_current_auth_mode); DECLARE_ACCESSOR(wpas_dbus_getter_current_auth_mode);