/* * Given a principal, find an existing ple structure, or create one */ static struct gssd_k5_kt_princ * get_ple_by_princ(krb5_context context, krb5_principal princ) { struct gssd_k5_kt_princ *ple; /* Need to serialize list if we ever become multi-threaded! */ ple = find_ple_by_princ(context, princ); if (ple == NULL) { ple = new_ple(context, princ); } return ple; }
/* * Given a principal, find an existing ple structure, or create one */ static struct gssd_k5_kt_princ *get_ple_by_princ(krb5_context context, krb5_principal princ) { struct gssd_k5_kt_princ *ple; pthread_mutex_lock(&ple_mtx); ple = find_ple_by_princ(context, princ); if (ple == NULL) ple = new_ple(context, princ); pthread_mutex_unlock(&ple_mtx); return ple; }