2N/A * Copyright 1990,2004,2008 by the Massachusetts Institute of Technology. 2N/A * All Rights Reserved. 2N/A * Export of this software from the United States of America may 2N/A * require a specific license from the United States Government. 2N/A * It is the responsibility of any person or organization contemplating 2N/A * export to obtain such a license before exporting. 2N/A * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 2N/A * distribute this software and its documentation for any purpose and 2N/A * without fee is hereby granted, provided that the above copyright 2N/A * notice appear in all copies and that both that copyright notice and 2N/A * this permission notice appear in supporting documentation, and that 2N/A * the name of M.I.T. not be used in advertising or publicity pertaining 2N/A * to distribution of the software without specific, written prior 2N/A * permission. Furthermore if you modify this software you must label 2N/A * your software as modified software and not distribute it in such a 2N/A * fashion that it might be confused with the original M.I.T. software. 2N/A * M.I.T. makes no representations about the suitability of 2N/A * this software for any purpose. It is provided "as is" without express 2N/A * or implied warranty. 2N/A * Registration functions for ccache. 2N/A#
endif /* USE_KEYRING_CCACHE */ 2N/A/* mutex for krb5_cccol_[un]lock */ 2N/A * Register a new credentials cache type 2N/A * If override is set, replace any existing ccache with that type tag 2N/A * Resolve a credential cache name into a cred. cache object. 2N/A * The name is currently constrained to be of the form "type:residual"; 2N/A * The "type" portion corresponds to one of the predefined credential 2N/A * cache types, while the "residual" portion is specific to the 2N/A * particular cache type. 2N/A /* We found a drive letter not a prefix - use FILE */ 2N/A * Internal function to return the ops vector for a given ccache 2N/A * Generate a new unique ccache, given a ccache type and a hint 2N/A * string. Ignores the hint string for now. 2N/A * Note: to avoid copying the typelist at cursor creation time, among 2N/A * other things, we assume that the only additions ever occur to the 2N/A /* not locked or already locked by another context */ 2N/A /* acquire lock, blocking until available */ 2N/A /* already locked by this context, just increase refcount */ 2N/A /* verify owner and sanity check refcount */ 2N/A /* decrement & unlock when count reaches zero */ 2N/A/* necessary to make reentrant locks play nice with krb5int_cc_finalize */ 2N/A * holds on to all pertype global locks as well as typelist lock 2N/A /* unlock each type in the opposite order */ 2N/A/* necessary to make reentrant locks play nice with krb5int_cc_finalize */ 2N/A /* unlock each type in the opposite order */