(_krb5_get_default_principal_local): add, for use of functions that in
ccache layer to avoid recursive calls. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14831 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		@@ -50,23 +50,21 @@ get_env_user(void)
 | 
				
			|||||||
    return user;
 | 
					    return user;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
krb5_error_code KRB5_LIB_FUNCTION
 | 
					/*
 | 
				
			||||||
krb5_get_default_principal (krb5_context context,
 | 
					 * Will only use operating-system dependant operation to get the
 | 
				
			||||||
 | 
					 * default principal, for use of functions that in ccache layer to
 | 
				
			||||||
 | 
					 * avoid recursive calls.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					krb5_error_code
 | 
				
			||||||
 | 
					_krb5_get_default_principal_local (krb5_context context, 
 | 
				
			||||||
				   krb5_principal *princ)
 | 
									   krb5_principal *princ)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    krb5_error_code ret;
 | 
					    krb5_error_code ret;
 | 
				
			||||||
    krb5_ccache id;
 | 
					 | 
				
			||||||
    const char *user;
 | 
					    const char *user;
 | 
				
			||||||
    uid_t uid;
 | 
					    uid_t uid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ret = krb5_cc_default (context, &id);
 | 
					    *princ = NULL;
 | 
				
			||||||
    if (ret == 0) {
 | 
					 | 
				
			||||||
	ret = krb5_cc_get_principal (context, id, princ);
 | 
					 | 
				
			||||||
	krb5_cc_close (context, id);
 | 
					 | 
				
			||||||
	if (ret == 0)
 | 
					 | 
				
			||||||
	    return 0;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    uid = getuid();    
 | 
					    uid = getuid();    
 | 
				
			||||||
    if(uid == 0) {
 | 
					    if(uid == 0) {
 | 
				
			||||||
@@ -93,6 +91,27 @@ krb5_get_default_principal (krb5_context context,
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	ret = krb5_make_principal(context, princ, NULL, user, NULL);
 | 
						ret = krb5_make_principal(context, princ, NULL, user, NULL);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    return ret;
 | 
					    return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					krb5_error_code KRB5_LIB_FUNCTION
 | 
				
			||||||
 | 
					krb5_get_default_principal (krb5_context context,
 | 
				
			||||||
 | 
								    krb5_principal *princ)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    krb5_error_code ret;
 | 
				
			||||||
 | 
					    krb5_ccache id;
 | 
				
			||||||
 | 
					    const char *user;
 | 
				
			||||||
 | 
					    uid_t uid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    *princ = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ret = krb5_cc_default (context, &id);
 | 
				
			||||||
 | 
					    if (ret == 0) {
 | 
				
			||||||
 | 
						ret = krb5_cc_get_principal (context, id, princ);
 | 
				
			||||||
 | 
						krb5_cc_close (context, id);
 | 
				
			||||||
 | 
						if (ret == 0)
 | 
				
			||||||
 | 
						    return 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return _krb5_get_default_principal_local(context, princ);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user