/* * Copyright 1988 by the Massachusetts Institute of Technology. * For copying and distribution information, please see the file * . * * This is where a cache would be implemented, if it were necessary. * * from: krb_cache.c,v 4.5 89/01/24 18:12:34 jon Exp $ * $Id: krb_cache.c,v 1.1.1.1 1994/09/30 14:49:55 csgr Exp $ */ #ifndef lint static char rcsid[] = "$Id: krb_cache.c,v 1.1.1.1 1994/09/30 14:49:55 csgr Exp $"; #endif lint #include #include #include #include #include #include #include #include #include #include extern char *strncpy(); #ifdef DEBUG extern int debug; extern long kerb_debug; #endif static init = 0; /* * initialization routine for cache */ int kerb_cache_init() { init = 1; return (0); } /* * look up a principal in the cache returns number of principals found */ int kerb_cache_get_principal(serv, inst, principal, max) char *serv; /* could have wild card */ char *inst; /* could have wild card */ Principal *principal; unsigned int max; /* max number of name structs to return */ { int found = 0; u_long i; if (!init) kerb_cache_init(); #ifdef DEBUG if (kerb_debug & 2) fprintf(stderr, "cache_get_principal for %s %s max = %d\n", serv, inst, max); #endif DEBUG #ifdef DEBUG if (kerb_debug & 2) { if (found) { fprintf(stderr, "cache get %s %s found %s %s sid = %d\n", serv, inst, principal->name, principal->instance); } else { fprintf(stderr, "cache %s %s not found\n", serv, inst); } } #endif return (found); } /* * insert/replace a principal in the cache returns number of principals * inserted */ int kerb_cache_put_principal(principal, max) Principal *principal; unsigned int max; /* max number of principal structs to * insert */ { int found = 0; u_long i; int count = 0; if (!init) kerb_cache_init(); #ifdef DEBUG if (kerb_debug & 2) { fprintf(stderr, "kerb_cache_put_principal max = %d", max); } #endif for (i = 0; i < max; i++) { #ifdef DEBUG if (kerb_debug & 2) fprintf(stderr, "\n %s %s", principal->name, principal->instance); #endif /* DO IT */ count++; principal++; } return count; } /* * look up a dba in the cache returns number of dbas found */ int kerb_cache_get_dba(serv, inst, dba, max) char *serv; /* could have wild card */ char *inst; /* could have wild card */ Dba *dba; unsigned int max; /* max number of name structs to return */ { int found = 0; u_long i; if (!init) kerb_cache_init(); #ifdef DEBUG if (kerb_debug & 2) fprintf(stderr, "cache_get_dba for %s %s max = %d\n", serv, inst, max); #endif #ifdef DEBUG if (kerb_debug & 2) { if (found) { fprintf(stderr, "cache get %s %s found %s %s sid = %d\n", serv, inst, dba->name, dba->instance); } else { fprintf(stderr, "cache %s %s not found\n", serv, inst); } } #endif return (found); } /* * insert/replace a dba in the cache returns number of dbas inserted */ int kerb_cache_put_dba(dba, max) Dba *dba; unsigned int max; /* max number of dba structs to insert */ { int found = 0; u_long i; int count = 0; if (!init) kerb_cache_init(); #ifdef DEBUG if (kerb_debug & 2) { fprintf(stderr, "kerb_cache_put_dba max = %d", max); } #endif for (i = 0; i < max; i++) { #ifdef DEBUG if (kerb_debug & 2) fprintf(stderr, "\n %s %s", dba->name, dba->instance); #endif /* DO IT */ count++; dba++; } return count; }