summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2023-02-21 12:10:46 -0500
committerRay Strode <rstrode@redhat.com>2023-02-22 15:02:19 -0500
commitf9dd22c453119a46d81614ff1cb2b4e88aba4e70 (patch)
tree3e313292c23337efcef4d91d94c0abcc37f71e06
parente1086376f8bb79d82fd4557389d143ae8e2b4749 (diff)
downloadgnome-online-accounts-f9dd22c453119a46d81614ff1cb2b4e88aba4e70.tar.gz
goakerberosidentity: Don't send "expired" and "unexpired" signals from two parts of the code
Since commit e869642bd079aec2098542a3c8f1b296694499ab verify_identity handles sending "expired" and "unexpired" signals on its own. Unfortunately that commit neglected to make goa_kerberos_identity_refresh stop sending the signals. This commit removes the duplicated logic.
-rw-r--r--src/goaidentity/goakerberosidentity.c42
1 files changed, 6 insertions, 36 deletions
diff --git a/src/goaidentity/goakerberosidentity.c b/src/goaidentity/goakerberosidentity.c
index b5cbcec..20add72 100644
--- a/src/goaidentity/goakerberosidentity.c
+++ b/src/goaidentity/goakerberosidentity.c
@@ -1780,7 +1780,6 @@ done:
void
goa_kerberos_identity_refresh (GoaKerberosIdentity *self)
{
- VerificationLevel old_verification_level, new_verification_level;
g_autofree char *preauth_identity_source = NULL;
g_autoptr (GError) error = NULL;
@@ -1788,11 +1787,13 @@ goa_kerberos_identity_refresh (GoaKerberosIdentity *self)
self->identifier,
self->active_credentials_cache_name);
- G_LOCK (identity_lock);
- old_verification_level = self->cached_verification_level;
- G_UNLOCK (identity_lock);
+ verify_identity (self, &preauth_identity_source, &error);
- new_verification_level = verify_identity (self, &preauth_identity_source, &error);
+ if (error != NULL)
+ {
+ g_debug ("GoaKerberosIdentity: Could not verify identity %s: %s", self->identifier, error->message);
+ return;
+ }
G_LOCK (identity_lock);
if (g_strcmp0 (self->preauth_identity_source, preauth_identity_source) != 0)
@@ -1801,37 +1802,6 @@ goa_kerberos_identity_refresh (GoaKerberosIdentity *self)
self->preauth_identity_source = g_steal_pointer (&preauth_identity_source);
}
G_UNLOCK (identity_lock);
-
- if (new_verification_level != old_verification_level)
- {
- if ((old_verification_level == VERIFICATION_LEVEL_SIGNED_IN) &&
- new_verification_level == VERIFICATION_LEVEL_EXISTS)
- {
- G_LOCK (identity_lock);
- self->cached_verification_level = new_verification_level;
- G_UNLOCK (identity_lock);
-
- g_signal_emit (G_OBJECT (self), signals[EXPIRED], 0);
- }
- else if (old_verification_level == VERIFICATION_LEVEL_EXISTS &&
- new_verification_level == VERIFICATION_LEVEL_SIGNED_IN)
- {
- G_LOCK (identity_lock);
- self->cached_verification_level = new_verification_level;
- G_UNLOCK (identity_lock);
-
- g_signal_emit (G_OBJECT (self), signals[UNEXPIRED], 0);
- }
- else
- {
- G_LOCK (identity_lock);
- self->cached_verification_level = new_verification_level;
- G_UNLOCK (identity_lock);
- }
- G_LOCK (identity_lock);
- queue_notify (self, &self->is_signed_in_idle_id, "is-signed-in");
- G_UNLOCK (identity_lock);
- }
}
gboolean