]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
dbus: Add SaveConfig to update configuration file
authorPurushottam Kushwaha <p.kushwaha@samsung.com>
Tue, 3 Nov 2015 07:01:27 +0000 (07:01 +0000)
committerJouni Malinen <j@w1.fi>
Sun, 15 Nov 2015 17:04:15 +0000 (19:04 +0200)
This is similar to SAVE_CONFIG on control interface, which allow users
to update the configuration file.

Signed-off-by: Purushottam Kushwaha <p.kushwaha@samsung.com>
Signed-off-by: Mayank Haarit <mayank.h@samsung.com>
doc/dbus.doxygen
wpa_supplicant/dbus/dbus_new.c
wpa_supplicant/dbus/dbus_new_handlers.c
wpa_supplicant/dbus/dbus_new_handlers.h

index bd3e7f44c482f02ae06da84d4a1efeb24ad46d87..cf60755931786857c5197631be1c8323a0375dd8 100644 (file)
@@ -455,6 +455,10 @@ fi.w1.wpa_supplicant1.CreateInterface.
          <dd>Initiating the TDLS operation failed for an unknown reason.</dd>
        </dl>
       </li>
+      <li>
+       <h3>SaveConfig ( ) --> nothing</h3>
+       <p>Save configuration to the configuration file.</p>
+      </li>
       <li>
        <h3>EAPLogoff ( ) --> nothing</h3>
        <p>IEEE 802.1X EAPOL state machine logoff.</p>
index 16bada9778ea711f39721723cf6c000ee33ee0ef..1bbfe49526e5437847d2a4266c7b7ab052888256 100644 (file)
@@ -3069,6 +3069,14 @@ static const struct wpa_dbus_method_desc wpas_dbus_interface_methods[] = {
          }
        },
 #endif /* CONFIG_TDLS */
+#ifndef CONFIG_NO_CONFIG_WRITE
+       { "SaveConfig", WPAS_DBUS_NEW_IFACE_INTERFACE,
+         (WPADBusMethodHandler) wpas_dbus_handler_save_config,
+         {
+                 END_ARGS
+         }
+       },
+#endif /* CONFIG_NO_CONFIG_WRITE */
        { NULL, NULL, NULL, { END_ARGS } }
 };
 
index 16492da77c4ef60a2ef65f4d08966e861831d787..a357dcb262cd743308fcb14bd56708b449b19020 100644 (file)
@@ -2294,6 +2294,35 @@ DBusMessage * wpas_dbus_handler_tdls_teardown(DBusMessage *message,
 #endif /* CONFIG_TDLS */
 
 
+#ifndef CONFIG_NO_CONFIG_WRITE
+/**
+ * wpas_dbus_handler_save_config - Save configuration to configuration file
+ * @message: Pointer to incoming dbus message
+ * @wpa_s: wpa_supplicant structure for a network interface
+ * Returns: NULL on Success, Otherwise errror message
+ *
+ * Handler function for "SaveConfig" method call of network interface.
+ */
+DBusMessage * wpas_dbus_handler_save_config(DBusMessage *message,
+                                           struct wpa_supplicant *wpa_s)
+{
+       int ret;
+
+       if (!wpa_s->conf->update_config) {
+               return wpas_dbus_error_unknown_error(
+                       message,
+                       "Not allowed to update configuration (update_config=0)");
+       }
+
+       ret = wpa_config_write(wpa_s->confname, wpa_s->conf);
+       if (ret)
+               return wpas_dbus_error_unknown_error(
+                       message, "Failed to update configuration");
+       return NULL;
+}
+#endif /* CONFIG_NO_CONFIG_WRITE */
+
+
 /**
  * wpas_dbus_handler_set_pkcs11_engine_and_module_path - Set PKCS #11 engine and module path
  * @message: Pointer to incoming dbus message
index 1e9b1732a3ebbeba77e8866b2f28f733c76f1ce1..86c835977f0a1e0b243ec452572233fcba55b75b 100644 (file)
@@ -194,6 +194,9 @@ DBusMessage * wpas_dbus_handler_tdls_status(DBusMessage *message,
 DBusMessage * wpas_dbus_handler_tdls_teardown(DBusMessage *message,
                                              struct wpa_supplicant *wpa_s);
 
+DBusMessage * wpas_dbus_handler_save_config(DBusMessage *message,
+                                           struct wpa_supplicant *wpa_s);
+
 DBusMessage * wpas_dbus_error_invalid_args(DBusMessage *message,
                                           const char *arg);
 DBusMessage * wpas_dbus_error_unknown_error(DBusMessage *message,