Windows: afskfw return error if krb5 not loaded
authorJeffrey Altman <jaltman@your-file-system.com>
Tue, 26 Apr 2011 01:41:17 +0000 (21:41 -0400)
committerDerrick Brashear <shadow@dementia.org>
Tue, 26 Apr 2011 04:46:58 +0000 (21:46 -0700)
If the Kerberos v5 library cannot be loaded (pkrb5_init_context
equal to NULL) return a reasonable error code instead of
returning success and doing nothing.

Change-Id: I8f77b51089d8c2a147fc9edc575dc92cd254a876
Reviewed-on: http://gerrit.openafs.org/4560
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/WINNT/afsd/afskfw.c

index bd68e0a..9633e78 100644 (file)
@@ -1008,7 +1008,7 @@ KFW_get_ccache(krb5_context alt_ctx, krb5_principal principal, krb5_ccache * cc)
     krb5_error_code code;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     if ( alt_ctx ) {
         ctx = alt_ctx;
@@ -1361,7 +1361,7 @@ KFW_AFS_get_cred( char * username,
     char * dot;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     if ( IsDebuggerPresent() ) {
         OutputDebugString("KFW_AFS_get_cred for token ");
@@ -1547,7 +1547,7 @@ KFW_AFS_destroy_tickets_for_cell(char * cell)
     char ** principals = NULL;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     if ( IsDebuggerPresent() ) {
         OutputDebugString("KFW_AFS_destroy_tickets_for_cell: ");
@@ -1614,7 +1614,7 @@ KFW_AFS_destroy_tickets_for_principal(char * user)
     krb5_ccache                cc  = NULL;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     if ( IsDebuggerPresent() ) {
         OutputDebugString("KFW_AFS_destroy_tickets_for_user: ");
@@ -1673,7 +1673,7 @@ KFW_AFS_renew_expiring_tokens(void)
     struct afsconf_cell cellconfig;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     if ( pcc_next == NULL ) // nothing to do
         return 0;
@@ -1777,7 +1777,7 @@ KFW_AFS_renew_token_for_cell(char * cell)
     char ** principals = NULL;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     if ( IsDebuggerPresent() ) {
         OutputDebugString("KFW_AFS_renew_token_for_cell:");
@@ -1932,7 +1932,7 @@ KFW_renew(krb5_context alt_ctx, krb5_ccache alt_cc)
     krb5_data           *realm = NULL;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
        memset(&my_creds, 0, sizeof(krb5_creds));
 
@@ -2051,7 +2051,7 @@ KFW_kinit( krb5_context alt_ctx,
     int                         i = 0, addr_count = 0;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     pkrb5_get_init_creds_opt_init(&options);
     memset(&my_creds, 0, sizeof(my_creds));
@@ -2211,7 +2211,7 @@ KFW_kdestroy(krb5_context alt_ctx, krb5_ccache alt_cc)
     krb5_error_code            code;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     if (alt_ctx)
     {
@@ -2881,7 +2881,7 @@ KFW_AFS_klog(
     }
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     memset(&ak_cellconfig, 0, sizeof(ak_cellconfig));
     memset(RealmName, '\0', sizeof(RealmName));
@@ -3677,7 +3677,7 @@ BOOL KFW_probe_kdc(struct afsconf_cell * cellconfig)
     BOOL serverReachable = 0;
 
     if (!pkrb5_init_context)
-        return 0;
+        return KRB5_CONFIG_CANTOPEN;
 
     code = pkrb5_init_context(&ctx);
     if (code) goto cleanup;