rc_base.c revision 505d05c73a6e56769f263d4803b22eddd168ee24
/*
* Copyright 2005 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/*
*
* This file of the Kerberos V5 software is derived from public-domain code
* contributed by Daniel J. Bernstein, <brnstnd@acf10.nyu.edu>.
*/
/*
* Base "glue" functions for the replay cache.
*/
#include "rc_base.h"
#include "rc_common.h"
#include "rc_mem.h"
#include "rc_file.h"
#include <k5-thread.h>
struct krb5_rc_typelist
{
const krb5_rc_ops *ops;
struct krb5_rc_typelist *next;
};
static struct krb5_rc_typelist krb5_rc_typelist_dfl =
{ &krb5_rc_file_ops, &rc_mem_type };
int krb5int_rc_finish_init(void)
{
return k5_mutex_finish_init(&rc_typelist_lock);
}
void krb5int_rc_terminate(void)
{
struct krb5_rc_typelist *t, *t_next;
free(t);
}
}
/*ARGSUSED*/
const krb5_rc_ops *ops)
{
struct krb5_rc_typelist *t;
if (err)
return err;
;
if (t) {
return KRB5_RC_TYPE_EXISTS;
}
if (t == NULL) {
return KRB5_RC_MALLOC;
}
typehead = t;
return 0;
}
/*ARGSUSED*/
char *type)
{
struct krb5_rc_typelist *t;
if (err)
return err;
;
if (!t) {
return KRB5_RC_TYPE_NOTFOUND;
}
/* allocate *id? nah */
}
/*ARGSUSED*/
{
}
{
char *s;
if ((s = getenv("KRB5RCACHETYPE")))
return s;
else
/*
* Solaris Kerberos/SUNW14resync
* MIT's is "dfl" but we now have FILE and MEMORY instead.
*/
return "FILE";
}
/*ARGSUSED*/
{
char *s;
if ((s = getenv("KRB5RCNAME")))
return s;
else
return (char *) 0;
}
{
return KRB5_RC_MALLOC;
if (retval) {
return retval;
}
return retval;
}
{
char *type;
char *residual;
unsigned int diff;
return KRB5_RC_PARSE;
return KRB5_RC_MALLOC;
return KRB5_RC_MALLOC;
}
return retval;
}
if (retval) {
return retval;
}
return retval;
}