NetworkManager r3794 - in trunk: . marshallers src src/ppp-manager
- From: dcbw svn gnome org
- To: svn-commits-list gnome org
- Subject: NetworkManager r3794 - in trunk: . marshallers src src/ppp-manager
- Date: Tue, 1 Jul 2008 20:21:31 +0000 (UTC)
Author: dcbw
Date: Tue Jul 1 20:21:31 2008
New Revision: 3794
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=3794&view=rev
Log:
2008-07-01 Dan Williams <dcbw redhat com>
Fix mobile broadband username/password issues. NM was never requesting
mobile broadband secrets, nor was it passing back the username and password
if it had them.
* marshallers/nm-marshal.list
- Add some new types for activation request objects
* src/nm-activation-request.c
src/nm-activation-request.h
- (get_secrets_cb): pass the caller type in the signal
- (nm_act_request_request_connection_secrets): take a caller type, so
that GetSecrets() reply handlers know who asked for the secrets in
the first place; use secret hints too so the settings service can
figure out exactly what NM wants (ie, PIN or the PPP password)
* src/ppp-manager/nm-ppp-manager.c
src/ppp-manager/nm-ppp-manager.h
- (impl_ppp_manager_need_secrets): nm_connection_need_secrets() won't
detect needed secrets when the secret could be blank, like GSM/CDMA
passwords. So always ask for secrets, and send a hint as to what
secret we really want.
- (nm_ppp_manager_update_secrets): make function more generic by making
the device specific class figure out the username and password, and
accept an error argument to return back over D-Bus
* src/nm-device-wifi.c
- (link_timeout_cb, handle_auth_or_fail): update for changes to
nm_act_request_request_connection_secrets()
- (real_connection_secrets_updated): update for 'caller' changes
* src/nm-device.c
src/nm-device.h
- (connection_secrets_updated_cb, connection_secrets_failed_cb): update
for 'caller' changes
* src/nm-device-ethernet.c
- (real_connection_secrets_updated): update for 'caller' changes and
move logic for getting PPPoE username and password here before
calling nm_ppp_manager_update_secrets()
- (link_timeout_cb, handle_auth_or_fail): update for changes to
nm_act_request_request_connection_secrets()
* src/nm-cdma-device.c
- (real_connection_secrets_updated): pass username and password back
to the PPP manager when required
* src/nm-gsm-device.c
- (enter_pin): send the required secret name to the settings service
- (real_connection_secrets_updated): pass username and password back
to the PPP manager when required
Modified:
trunk/ChangeLog
trunk/marshallers/nm-marshal.list
trunk/src/nm-activation-request.c
trunk/src/nm-activation-request.h
trunk/src/nm-cdma-device.c
trunk/src/nm-device-ethernet.c
trunk/src/nm-device-wifi.c
trunk/src/nm-device.c
trunk/src/nm-device.h
trunk/src/nm-gsm-device.c
trunk/src/ppp-manager/nm-ppp-manager.c
trunk/src/ppp-manager/nm-ppp-manager.h
Modified: trunk/marshallers/nm-marshal.list
==============================================================================
--- trunk/marshallers/nm-marshal.list (original)
+++ trunk/marshallers/nm-marshal.list Tue Jul 1 20:21:31 2008
@@ -1,7 +1,9 @@
VOID:OBJECT
VOID:OBJECT,STRING
+VOID:OBJECT,STRING,UINT
VOID:OBJECT,UINT
VOID:OBJECT,POINTER
+VOID:OBJECT,POINTER,UINT
VOID:POINTER
VOID:STRING,STRING,STRING
VOID:UINT,UINT
Modified: trunk/src/nm-activation-request.c
==============================================================================
--- trunk/src/nm-activation-request.c (original)
+++ trunk/src/nm-activation-request.c Tue Jul 1 20:21:31 2008
@@ -311,9 +311,9 @@
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (NMActRequestClass, connection_secrets_updated),
NULL, NULL,
- nm_marshal_VOID__OBJECT_POINTER,
- G_TYPE_NONE, 2,
- G_TYPE_OBJECT, G_TYPE_POINTER);
+ nm_marshal_VOID__OBJECT_POINTER_UINT,
+ G_TYPE_NONE, 3,
+ G_TYPE_OBJECT, G_TYPE_POINTER, G_TYPE_UINT);
signals[CONNECTION_SECRETS_FAILED] =
g_signal_new ("connection-secrets-failed",
@@ -321,9 +321,9 @@
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (NMActRequestClass, connection_secrets_failed),
NULL, NULL,
- nm_marshal_VOID__OBJECT_STRING,
- G_TYPE_NONE, 2,
- G_TYPE_OBJECT, G_TYPE_STRING);
+ nm_marshal_VOID__OBJECT_STRING_UINT,
+ G_TYPE_NONE, 3,
+ G_TYPE_OBJECT, G_TYPE_STRING, G_TYPE_UINT);
signals[PROPERTIES_CHANGED] =
nm_properties_changed_signal_new (object_class,
@@ -371,6 +371,7 @@
typedef struct GetSecretsInfo {
NMActRequest *req;
char *setting_name;
+ RequestSecretsCaller caller;
} GetSecretsInfo;
static void
@@ -480,7 +481,8 @@
signals[CONNECTION_SECRETS_FAILED],
0,
priv->connection,
- info->setting_name);
+ info->setting_name,
+ info->caller);
return;
}
@@ -511,7 +513,8 @@
signals[CONNECTION_SECRETS_UPDATED],
0,
priv->connection,
- updated);
+ updated,
+ info->caller);
} else {
nm_warning ("No secrets updated because not valid settings were received!");
}
@@ -524,7 +527,10 @@
gboolean
nm_act_request_request_connection_secrets (NMActRequest *req,
const char *setting_name,
- gboolean request_new)
+ gboolean request_new,
+ RequestSecretsCaller caller,
+ const char *hint1,
+ const char *hint2)
{
DBusGProxy *proxy;
DBusGProxyCall *call;
@@ -555,9 +561,15 @@
}
/* Empty for now */
- hints = g_ptr_array_new ();
+ hints = g_ptr_array_sized_new (2);
+
+ if (hint1)
+ g_ptr_array_add (hints, g_strdup (hint1));
+ if (hint2)
+ g_ptr_array_add (hints, g_strdup (hint2));
info->req = req;
+ info->caller = caller;
call = dbus_g_proxy_begin_call_with_timeout (proxy, "GetSecrets",
get_secrets_cb,
info,
Modified: trunk/src/nm-activation-request.h
==============================================================================
--- trunk/src/nm-activation-request.h (original)
+++ trunk/src/nm-activation-request.h Tue Jul 1 20:21:31 2008
@@ -38,16 +38,27 @@
GObject parent;
} NMActRequest;
+typedef enum {
+ SECRETS_CALLER_NONE = 0,
+ SECRETS_CALLER_ETHERNET,
+ SECRETS_CALLER_WIFI,
+ SECRETS_CALLER_GSM,
+ SECRETS_CALLER_CDMA,
+ SECRETS_CALLER_PPP
+} RequestSecretsCaller;
+
typedef struct {
GObjectClass parent;
/* Signals */
void (*connection_secrets_updated) (NMActRequest *req,
NMConnection *connection,
- GSList *updated_settings);
+ GSList *updated_settings,
+ RequestSecretsCaller caller);
void (*connection_secrets_failed) (NMActRequest *req,
NMConnection *connection,
- const char * setting);
+ const char *setting,
+ RequestSecretsCaller caller);
void (*properties_changed) (NMActRequest *req, GHashTable *properties);
} NMActRequestClass;
@@ -62,7 +73,10 @@
NMConnection *nm_act_request_get_connection (NMActRequest *req);
gboolean nm_act_request_request_connection_secrets (NMActRequest *req,
const char *setting_name,
- gboolean request_new);
+ gboolean request_new,
+ RequestSecretsCaller caller,
+ const char *hint1,
+ const char *hint2);
const char * nm_act_request_get_specific_object (NMActRequest *req);
void nm_act_request_set_specific_object (NMActRequest *req,
Modified: trunk/src/nm-cdma-device.c
==============================================================================
--- trunk/src/nm-cdma-device.c (original)
+++ trunk/src/nm-cdma-device.c Tue Jul 1 20:21:31 2008
@@ -214,14 +214,40 @@
static void
real_connection_secrets_updated (NMDevice *dev,
NMConnection *connection,
- GSList *updated_settings)
+ GSList *updated_settings,
+ RequestSecretsCaller caller)
{
NMActRequest *req;
gboolean found = FALSE;
GSList *iter;
- if (nm_device_get_state (dev) != NM_DEVICE_STATE_NEED_AUTH)
+ if (caller == SECRETS_CALLER_PPP) {
+ NMPPPManager *ppp_manager;
+ NMSettingCdma *s_cdma = NULL;
+
+ ppp_manager = nm_serial_device_get_ppp_manager (NM_SERIAL_DEVICE (dev));
+ g_return_if_fail (ppp_manager != NULL);
+
+ s_cdma = (NMSettingCdma *) nm_connection_get_setting (connection, NM_TYPE_SETTING_CDMA);
+ if (!s_cdma) {
+ /* Shouldn't ever happen */
+ nm_ppp_manager_update_secrets (ppp_manager,
+ nm_device_get_iface (dev),
+ NULL,
+ NULL,
+ "missing CDMA setting; no secrets could be found.");
+ } else {
+ nm_ppp_manager_update_secrets (ppp_manager,
+ nm_device_get_iface (dev),
+ s_cdma->username ? s_cdma->username : "",
+ s_cdma->password ? s_cdma->password : "",
+ NULL);
+ }
return;
+ }
+
+ g_return_if_fail (caller == SECRETS_CALLER_CDMA);
+ g_return_if_fail (nm_device_get_state (dev) == NM_DEVICE_STATE_NEED_AUTH);
for (iter = updated_settings; iter; iter = g_slist_next (iter)) {
const char *setting_name = (const char *) iter->data;
Modified: trunk/src/nm-device-ethernet.c
==============================================================================
--- trunk/src/nm-device-ethernet.c (original)
+++ trunk/src/nm-device-ethernet.c Tue Jul 1 20:21:31 2008
@@ -565,7 +565,8 @@
static void
real_connection_secrets_updated (NMDevice *dev,
NMConnection *connection,
- GSList *updated_settings)
+ GSList *updated_settings,
+ RequestSecretsCaller caller)
{
NMDeviceEthernetPrivate *priv = NM_DEVICE_ETHERNET_GET_PRIVATE (dev);
NMActRequest *req;
@@ -575,12 +576,32 @@
if (nm_device_get_state (dev) != NM_DEVICE_STATE_NEED_AUTH)
return;
- if (priv->ppp_manager) {
- /* PPPoE */
- nm_ppp_manager_update_secrets (priv->ppp_manager, nm_device_get_iface (dev), connection);
+ /* PPPoE? */
+ if (caller == SECRETS_CALLER_PPP) {
+ NMSettingPPPOE *s_pppoe;
+
+ g_assert (priv->ppp_manager);
+
+ s_pppoe = (NMSettingPPPOE *) nm_connection_get_setting (connection, NM_TYPE_SETTING_PPPOE);
+ if (!s_pppoe) {
+ nm_ppp_manager_update_secrets (priv->ppp_manager,
+ nm_device_get_iface (dev),
+ NULL,
+ NULL,
+ "missing PPPoE setting; no secrets could be found.");
+ } else {
+ nm_ppp_manager_update_secrets (priv->ppp_manager,
+ nm_device_get_iface (dev),
+ s_pppoe->username ? s_pppoe->username : "",
+ s_pppoe->password ? s_pppoe->password : "",
+ NULL);
+ }
return;
}
+ /* Only caller could be ourselves for 802.1x */
+ g_return_if_fail (caller == SECRETS_CALLER_ETHERNET);
+
for (iter = updated_settings; iter; iter = g_slist_next (iter)) {
const char *setting_name = (const char *) iter->data;
@@ -715,7 +736,8 @@
supplicant_interface_clean (self);
nm_device_state_changed (dev, NM_DEVICE_STATE_NEED_AUTH);
- nm_act_request_request_connection_secrets (req, setting_name, TRUE);
+ nm_act_request_request_connection_secrets (req, setting_name, TRUE,
+ SECRETS_CALLER_ETHERNET, NULL, NULL);
return FALSE;
@@ -975,7 +997,8 @@
* only ask for new secrets after the first failure.
*/
get_new = new_secrets ? TRUE : (tries ? TRUE : FALSE);
- nm_act_request_request_connection_secrets (req, setting_name, get_new);
+ nm_act_request_request_connection_secrets (req, setting_name, get_new,
+ SECRETS_CALLER_ETHERNET, NULL, NULL);
g_object_set_data (G_OBJECT (connection), WIRED_SECRETS_TRIES, GUINT_TO_POINTER (++tries));
} else
Modified: trunk/src/nm-device-wifi.c
==============================================================================
--- trunk/src/nm-device-wifi.c (original)
+++ trunk/src/nm-device-wifi.c Tue Jul 1 20:21:31 2008
@@ -2042,7 +2042,8 @@
" asking for new key.", nm_device_get_iface (dev));
cleanup_association_attempt (self, TRUE);
nm_device_state_changed (dev, NM_DEVICE_STATE_NEED_AUTH);
- nm_act_request_request_connection_secrets (req, setting_name, TRUE);
+ nm_act_request_request_connection_secrets (req, setting_name, TRUE,
+ SECRETS_CALLER_WIFI, NULL, NULL);
return FALSE;
}
@@ -2391,7 +2392,8 @@
* only ask for new secrets after the first failure.
*/
get_new = new_secrets ? TRUE : (tries ? TRUE : FALSE);
- nm_act_request_request_connection_secrets (req, setting_name, get_new);
+ nm_act_request_request_connection_secrets (req, setting_name, get_new,
+ SECRETS_CALLER_WIFI, NULL, NULL);
g_object_set_data (G_OBJECT (connection), WIRELESS_SECRETS_TRIES, GUINT_TO_POINTER (++tries));
} else {
@@ -2695,12 +2697,15 @@
static void
real_connection_secrets_updated (NMDevice *dev,
NMConnection *connection,
- GSList *updated_settings)
+ GSList *updated_settings,
+ RequestSecretsCaller caller)
{
NMActRequest *req;
gboolean valid = FALSE;
GSList *iter;
+ g_return_if_fail (caller == SECRETS_CALLER_WIFI);
+
if (nm_device_get_state (dev) != NM_DEVICE_STATE_NEED_AUTH)
return;
Modified: trunk/src/nm-device.c
==============================================================================
--- trunk/src/nm-device.c (original)
+++ trunk/src/nm-device.c Tue Jul 1 20:21:31 2008
@@ -1113,18 +1113,20 @@
connection_secrets_updated_cb (NMActRequest *req,
NMConnection *connection,
GSList *updated_settings,
+ RequestSecretsCaller caller,
gpointer user_data)
{
NMDevice *self = NM_DEVICE (user_data);
if (NM_DEVICE_GET_CLASS (self)->connection_secrets_updated)
- NM_DEVICE_GET_CLASS (self)->connection_secrets_updated (self, connection, updated_settings);
+ NM_DEVICE_GET_CLASS (self)->connection_secrets_updated (self, connection, updated_settings, caller);
}
static void
connection_secrets_failed_cb (NMActRequest *req,
NMConnection *connection,
const char *setting_name,
+ RequestSecretsCaller caller,
gpointer user_data)
{
NMDevice *self = NM_DEVICE (user_data);
Modified: trunk/src/nm-device.h
==============================================================================
--- trunk/src/nm-device.h (original)
+++ trunk/src/nm-device.h Tue Jul 1 20:21:31 2008
@@ -91,7 +91,8 @@
void (* connection_secrets_updated) (NMDevice *self,
NMConnection *connection,
- GSList *updated_settings);
+ GSList *updated_settings,
+ RequestSecretsCaller caller);
gboolean (* check_connection_compatible) (NMDevice *self,
NMConnection *connection,
Modified: trunk/src/nm-gsm-device.c
==============================================================================
--- trunk/src/nm-gsm-device.c (original)
+++ trunk/src/nm-gsm-device.c Tue Jul 1 20:21:31 2008
@@ -444,7 +444,12 @@
} else {
nm_info ("(%s): GSM %s secret required", nm_device_get_iface (NM_DEVICE (device)), secret_name);
nm_device_state_changed (NM_DEVICE (device), NM_DEVICE_STATE_NEED_AUTH);
- nm_act_request_request_connection_secrets (req, NM_SETTING_GSM_SETTING_NAME, retry);
+ nm_act_request_request_connection_secrets (req,
+ NM_SETTING_GSM_SETTING_NAME,
+ retry,
+ SECRETS_CALLER_GSM,
+ secret_name,
+ NULL);
}
}
@@ -567,14 +572,40 @@
static void
real_connection_secrets_updated (NMDevice *dev,
NMConnection *connection,
- GSList *updated_settings)
+ GSList *updated_settings,
+ RequestSecretsCaller caller)
{
NMActRequest *req;
gboolean found = FALSE;
GSList *iter;
- if (nm_device_get_state (dev) != NM_DEVICE_STATE_NEED_AUTH)
+ if (caller == SECRETS_CALLER_PPP) {
+ NMPPPManager *ppp_manager;
+ NMSettingGsm *s_gsm = NULL;
+
+ ppp_manager = nm_serial_device_get_ppp_manager (NM_SERIAL_DEVICE (dev));
+ g_return_if_fail (ppp_manager != NULL);
+
+ s_gsm = (NMSettingGsm *) nm_connection_get_setting (connection, NM_TYPE_SETTING_GSM);
+ if (!s_gsm) {
+ /* Shouldn't ever happen */
+ nm_ppp_manager_update_secrets (ppp_manager,
+ nm_device_get_iface (dev),
+ NULL,
+ NULL,
+ "missing GSM setting; no secrets could be found.");
+ } else {
+ nm_ppp_manager_update_secrets (ppp_manager,
+ nm_device_get_iface (dev),
+ s_gsm->username ? s_gsm->username : "",
+ s_gsm->password ? s_gsm->password : "",
+ NULL);
+ }
return;
+ }
+
+ g_return_if_fail (caller == SECRETS_CALLER_GSM);
+ g_return_if_fail (nm_device_get_state (dev) == NM_DEVICE_STATE_NEED_AUTH);
for (iter = updated_settings; iter; iter = g_slist_next (iter)) {
const char *setting_name = (const char *) iter->data;
Modified: trunk/src/ppp-manager/nm-ppp-manager.c
==============================================================================
--- trunk/src/ppp-manager/nm-ppp-manager.c (original)
+++ trunk/src/ppp-manager/nm-ppp-manager.c Tue Jul 1 20:21:31 2008
@@ -23,6 +23,8 @@
#include "nm-setting-connection.h"
#include "nm-setting-ppp.h"
#include "nm-setting-pppoe.h"
+#include "nm-setting-gsm.h"
+#include "nm-setting-cdma.h"
#include "nm-dbus-manager.h"
#include "nm-utils.h"
#include "nm-marshal.h"
@@ -254,30 +256,62 @@
{
NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager);
NMConnection *connection;
+ NMSettingConnection *s_con;
+ NMSetting *setting;
const char *setting_name;
+ guint32 tries;
+ char *hint1 = NULL;
remove_timeout_handler (manager);
connection = nm_act_request_get_connection (priv->act_req);
+ s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
+ g_assert (s_con);
+ g_assert (s_con->type);
+
nm_connection_clear_secrets (connection);
setting_name = nm_connection_need_secrets (connection, NULL);
if (setting_name) {
- guint32 tries;
-
- tries = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (connection), PPP_MANAGER_SECRET_TRIES));
- nm_act_request_request_connection_secrets (priv->act_req, setting_name, tries == 0 ? TRUE : FALSE);
- g_object_set_data (G_OBJECT (connection), PPP_MANAGER_SECRET_TRIES, GUINT_TO_POINTER (++tries));
- priv->pending_secrets_context = context;
+ setting = nm_connection_get_setting_by_name (connection, setting_name);
} else {
- GError *err = NULL;
-
- g_set_error (&err, NM_PPP_MANAGER_ERROR, NM_PPP_MANAGER_ERROR_UNKOWN,
- "Cleared secrets, but setting didn't need any secrets.");
-
- nm_warning ("%s", err->message);
- dbus_g_method_return_error (context, err);
+ /* Always ask for secrets unless the connection's type setting doesn't
+ * even exist (which shouldn't happen). Empty username and password are
+ * valid, but we need to tell the pppd plugin that this is valid by
+ * sending back blank secrets.
+ */
+ setting = nm_connection_get_setting_by_name (connection, s_con->type);
+ if (!setting) {
+ GError *err = NULL;
+
+ g_set_error (&err, NM_PPP_MANAGER_ERROR, NM_PPP_MANAGER_ERROR_UNKOWN,
+ "Missing type-specific setting; no secrets could be found.");
+ nm_warning ("%s", err->message);
+ dbus_g_method_return_error (context, err);
+ return;
+ }
+ setting_name = nm_setting_get_name (setting);
}
+
+ /* FIXME: figure out some way of pushing this down to the settings
+ * themselves and keeping the PPP Manager generic.
+ */
+ if (NM_IS_SETTING_PPPOE (setting))
+ hint1 = NM_SETTING_PPPOE_PASSWORD;
+ else if (NM_IS_SETTING_GSM (setting))
+ hint1 = NM_SETTING_GSM_PASSWORD;
+ else if (NM_IS_SETTING_CDMA (setting))
+ hint1 = NM_SETTING_CDMA_PASSWORD;
+
+ tries = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (connection), PPP_MANAGER_SECRET_TRIES));
+ nm_act_request_request_connection_secrets (priv->act_req,
+ setting_name,
+ tries == 0 ? TRUE : FALSE,
+ SECRETS_CALLER_PPP,
+ hint1,
+ NULL);
+ g_object_set_data (G_OBJECT (connection), PPP_MANAGER_SECRET_TRIES, GUINT_TO_POINTER (++tries));
+ priv->pending_secrets_context = context;
}
static gboolean impl_ppp_manager_set_state (NMPPPManager *manager,
@@ -764,38 +798,44 @@
void
nm_ppp_manager_update_secrets (NMPPPManager *manager,
- const char *device,
- NMConnection *connection)
+ const char *device,
+ const char *username,
+ const char *password,
+ const char *error_message)
{
NMPPPManagerPrivate *priv = NM_PPP_MANAGER_GET_PRIVATE (manager);
- NMSettingConnection *s_connection;
- NMSettingPPPOE *pppoe_setting;
g_return_if_fail (NM_IS_PPP_MANAGER (manager));
g_return_if_fail (device != NULL);
- g_return_if_fail (NM_IS_CONNECTION (connection));
g_return_if_fail (priv->pending_secrets_context != NULL);
- s_connection = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, NM_TYPE_SETTING_CONNECTION));
- g_assert (s_connection);
+ if (error_message) {
+ g_return_if_fail (username == NULL);
+ g_return_if_fail (password == NULL);
+ } else {
+ g_return_if_fail (username != NULL);
+ g_return_if_fail (password != NULL);
+ }
- if (strcmp (s_connection->type, NM_SETTING_PPPOE_SETTING_NAME))
- /* Not for us */
- return;
-
- /* This is sort of a hack but...
- pppd plugin only ever needs username and password.
- Passing the full connection there would mean some bloat:
- the plugin would need to link against libnm-util just to parse this.
- So instead, let's just send what it needs */
-
- pppoe_setting = NM_SETTING_PPPOE (nm_connection_get_setting (connection, NM_TYPE_SETTING_PPPOE));
- g_assert (pppoe_setting);
-
- /* FIXME: Do we have to strdup the values here? */
- dbus_g_method_return (priv->pending_secrets_context,
- g_strdup (pppoe_setting->username),
- g_strdup (pppoe_setting->password));
+ if (error_message) {
+ GError *err = NULL;
+
+ g_set_error (&err, NM_PPP_MANAGER_ERROR, NM_PPP_MANAGER_ERROR_UNKOWN, error_message);
+ nm_warning ("%s", error_message);
+ dbus_g_method_return_error (priv->pending_secrets_context, err);
+ g_error_free (err);
+ } else {
+ /* This is sort of a hack but...
+ pppd plugin only ever needs username and password.
+ Passing the full connection there would mean some bloat:
+ the plugin would need to link against libnm-util just to parse this.
+ So instead, let's just send what it needs */
+
+ /* FIXME: Do we have to strdup the values here? */
+ dbus_g_method_return (priv->pending_secrets_context,
+ g_strdup (username),
+ g_strdup (password));
+ }
priv->pending_secrets_context = NULL;
}
Modified: trunk/src/ppp-manager/nm-ppp-manager.h
==============================================================================
--- trunk/src/ppp-manager/nm-ppp-manager.h (original)
+++ trunk/src/ppp-manager/nm-ppp-manager.h Tue Jul 1 20:21:31 2008
@@ -42,8 +42,10 @@
GError **err);
void nm_ppp_manager_update_secrets (NMPPPManager *manager,
- const char *device,
- NMConnection *connection);
+ const char *device,
+ const char *username,
+ const char *password,
+ const char *error_message);
void nm_ppp_manager_stop (NMPPPManager *manager);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]