mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-05 17:00:29 +01:00
libnm-glib: add 'registered' property for NMSecretAgent
So clients can track when the agent is actually registered and when it's registration state changes.
This commit is contained in:
parent
4f0ddb105a
commit
1da9738f1b
3 changed files with 40 additions and 2 deletions
|
|
@ -199,6 +199,7 @@ global:
|
|||
nm_secret_agent_delete_secrets;
|
||||
nm_secret_agent_error_get_type;
|
||||
nm_secret_agent_error_quark;
|
||||
nm_secret_agent_get_registered;
|
||||
nm_secret_agent_get_secrets;
|
||||
nm_secret_agent_get_secrets_flags_get_type;
|
||||
nm_secret_agent_get_type;
|
||||
|
|
|
|||
|
|
@ -87,6 +87,7 @@ enum {
|
|||
PROP_0,
|
||||
PROP_IDENTIFIER,
|
||||
PROP_AUTO_REGISTER,
|
||||
PROP_REGISTERED,
|
||||
|
||||
LAST_PROP
|
||||
};
|
||||
|
|
@ -145,6 +146,7 @@ _internal_unregister (NMSecretAgent *self)
|
|||
if (priv->registered) {
|
||||
dbus_g_connection_unregister_g_object (priv->bus, G_OBJECT (self));
|
||||
priv->registered = FALSE;
|
||||
g_object_notify (G_OBJECT (self), NM_SECRET_AGENT_REGISTERED);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -509,9 +511,10 @@ reg_request_cb (DBusGProxy *proxy,
|
|||
|
||||
priv->reg_call = NULL;
|
||||
|
||||
if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID))
|
||||
if (dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID)) {
|
||||
priv->registered = TRUE;
|
||||
else {
|
||||
g_object_notify (G_OBJECT (self), NM_SECRET_AGENT_REGISTERED);
|
||||
} else {
|
||||
/* If registration failed we shouldn't expose ourselves on the bus */
|
||||
_internal_unregister (self);
|
||||
}
|
||||
|
|
@ -607,6 +610,21 @@ nm_secret_agent_unregister (NMSecretAgent *self)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* nm_secret_agent_get_registered:
|
||||
* @self: a #NMSecretAgent
|
||||
*
|
||||
* Returns: a %TRUE if the agent is registered, %FALSE if it is not.
|
||||
**/
|
||||
gboolean
|
||||
nm_secret_agent_get_registered (NMSecretAgent *self)
|
||||
{
|
||||
g_return_val_if_fail (self != NULL, FALSE);
|
||||
g_return_val_if_fail (NM_IS_SECRET_AGENT (self), FALSE);
|
||||
|
||||
return NM_SECRET_AGENT_GET_PRIVATE (self)->registered;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
auto_register_cb (gpointer user_data)
|
||||
{
|
||||
|
|
@ -818,6 +836,9 @@ get_property (GObject *object,
|
|||
case PROP_AUTO_REGISTER:
|
||||
g_value_set_boolean (value, priv->auto_register);
|
||||
break;
|
||||
case PROP_REGISTERED:
|
||||
g_value_set_boolean (value, priv->registered);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
|
|
@ -935,6 +956,19 @@ nm_secret_agent_class_init (NMSecretAgentClass *class)
|
|||
TRUE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
||||
|
||||
/**
|
||||
* NMSecretAgent:registered:
|
||||
*
|
||||
* %TRUE if the agent is registered with NetworkManager, %FALSE if not.
|
||||
**/
|
||||
g_object_class_install_property
|
||||
(object_class, PROP_REGISTERED,
|
||||
g_param_spec_boolean (NM_SECRET_AGENT_REGISTERED,
|
||||
"Registered",
|
||||
"Registered",
|
||||
FALSE,
|
||||
G_PARAM_READABLE));
|
||||
|
||||
/**
|
||||
* NMSecretAgent::registration-result:
|
||||
* @agent: the agent that received the signal
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ typedef enum {
|
|||
|
||||
#define NM_SECRET_AGENT_IDENTIFIER "identifier"
|
||||
#define NM_SECRET_AGENT_AUTO_REGISTER "auto-register"
|
||||
#define NM_SECRET_AGENT_REGISTERED "registered"
|
||||
|
||||
#define NM_SECRET_AGENT_REGISTRATION_RESULT "registration-result"
|
||||
|
||||
|
|
@ -229,6 +230,8 @@ gboolean nm_secret_agent_register (NMSecretAgent *self);
|
|||
|
||||
gboolean nm_secret_agent_unregister (NMSecretAgent *self);
|
||||
|
||||
gboolean nm_secret_agent_get_registered (NMSecretAgent *self);
|
||||
|
||||
void nm_secret_agent_get_secrets (NMSecretAgent *self,
|
||||
NMConnection *connection,
|
||||
const char *setting_name,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue