[gnome-online-accounts/gnome-3-6] goaidentity: move ccache creation code to own function



commit 25e743d74703dcb5841fdfcf1bd54b8d642c84d8
Author: Ray Strode <rstrode redhat com>
Date:   Wed Oct 10 14:34:36 2012 -0400

    goaidentity: move ccache creation code to own function
    
    The details of getting a ccache object to initialize are
    kind of hairy, and need to be made hairier to keep
    the primary ccache valid and available.
    
    This commit moves the current hairy code from
    sign_in_identity to a new helper function.
    
    A subsequent commit will improve the logic in that helper
    function.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=685876
    (cherry picked from commit a69c6fb1d5a253b5e38ab8c6fabb1be60f10ca13)

 src/goaidentity/goakerberosidentitymanager.c |   43 ++++++++++++++++---------
 1 files changed, 27 insertions(+), 16 deletions(-)
---
diff --git a/src/goaidentity/goakerberosidentitymanager.c b/src/goaidentity/goakerberosidentitymanager.c
index fb67387..2712be9 100644
--- a/src/goaidentity/goakerberosidentitymanager.c
+++ b/src/goaidentity/goakerberosidentitymanager.c
@@ -754,6 +754,32 @@ get_identity (GoaKerberosIdentityManager *self,
                                              (GDestroyNotify) g_object_unref);
 }
 
+static krb5_error_code
+get_new_credentials_cache (GoaKerberosIdentityManager *self,
+                           krb5_ccache                *credentials_cache)
+{
+  krb5_error_code error_code;
+
+  if (g_strcmp0 (self->priv->credentials_cache_type, "FILE") == 0)
+    {
+      krb5_ccache default_cache;
+
+      error_code = krb5_cc_default (self->priv->kerberos_context, &default_cache);
+
+      if (error_code == 0)
+        krb5_cc_dup (self->priv->kerberos_context, default_cache, credentials_cache);
+    }
+  else
+    {
+      error_code = krb5_cc_new_unique (self->priv->kerberos_context,
+                                       self->priv->credentials_cache_type,
+                                       NULL,
+                                       credentials_cache);
+    }
+
+  return error_code;
+}
+
 static void
 sign_in_identity (GoaKerberosIdentityManager *self,
                   Operation                  *operation)
@@ -770,22 +796,7 @@ sign_in_identity (GoaKerberosIdentityManager *self,
     {
       krb5_ccache credentials_cache;
 
-      if (g_strcmp0 (self->priv->credentials_cache_type, "FILE") == 0)
-        {
-          krb5_ccache default_cache;
-
-          error_code = krb5_cc_default (self->priv->kerberos_context, &default_cache);
-
-          if (error_code == 0)
-            krb5_cc_dup (self->priv->kerberos_context, default_cache, &credentials_cache);
-        }
-      else
-        {
-          error_code = krb5_cc_new_unique (self->priv->kerberos_context,
-                                           self->priv->credentials_cache_type,
-                                           NULL,
-                                           &credentials_cache);
-        }
+      error_code = get_new_credentials_cache (self, &credentials_cache);
 
       if (error_code != 0)
         {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]