Annotation of 43BSDReno/kerberosIV/kdb/krb_cache.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * $Source: /mit/kerberos/src/lib/kdb/RCS/krb_cache.c,v $
                      3:  * $Author: jon $ 
                      4:  *
                      5:  * Copyright 1988 by the Massachusetts Institute of Technology. 
                      6:  *
                      7:  * For copying and distribution information, please see the file
                      8:  * <mit-copyright.h>.
                      9:  *
                     10:  * This is where a cache would be implemented, if it were necessary.
                     11:  */
                     12: 
                     13: #ifndef        lint
                     14: static char rcsid_krb_cache_c[] =
                     15: "$Header: krb_cache.c,v 4.5 89/01/24 18:12:34 jon Exp $";
                     16: #endif lint
                     17: 
                     18: #include <mit-copyright.h>
                     19: #include <stdio.h>
                     20: #include <sys/types.h>
                     21: #include <netinet/in.h>
                     22: #include <sys/uio.h>
                     23: #include <sys/time.h>
                     24: #include <sys/resource.h>
                     25: #include <strings.h>
                     26: #include <des.h>
                     27: #include <krb.h>
                     28: #include <krb_db.h>
                     29: 
                     30: extern char *strncpy();
                     31: 
                     32: #ifdef DEBUG
                     33: extern int debug;
                     34: extern long kerb_debug;
                     35: #endif
                     36: static  init = 0;
                     37: 
                     38: /*
                     39:  * initialization routine for cache 
                     40:  */
                     41: 
                     42: int
                     43: kerb_cache_init()
                     44: {
                     45:     init = 1;
                     46:     return (0);
                     47: }
                     48: 
                     49: /*
                     50:  * look up a principal in the cache returns number of principals found 
                     51:  */
                     52: 
                     53: int
                     54: kerb_cache_get_principal(serv, inst, principal, max)
                     55:     char   *serv;              /* could have wild card */
                     56:     char   *inst;              /* could have wild card */
                     57:     Principal *principal;
                     58:     unsigned int max;          /* max number of name structs to return */
                     59: 
                     60: {
                     61:     int     found = 0;
                     62:     u_long  i;
                     63: 
                     64:     if (!init)
                     65:        kerb_cache_init();
                     66: #ifdef DEBUG
                     67:     if (kerb_debug & 2)
                     68:        fprintf(stderr, "cache_get_principal for %s %s max = %d\n",
                     69:            serv, inst, max);
                     70: #endif DEBUG
                     71:     
                     72: #ifdef DEBUG
                     73:     if (kerb_debug & 2) {
                     74:        if (found) {
                     75:            fprintf(stderr, "cache get %s %s found %s %s sid = %d\n",
                     76:                serv, inst, principal->name, principal->instance);
                     77:        } else {
                     78:            fprintf(stderr, "cache %s %s not found\n", serv,
                     79:                inst);
                     80:        }
                     81:     }
                     82: #endif
                     83:     return (found);
                     84: }
                     85: 
                     86: /*
                     87:  * insert/replace a principal in the cache returns number of principals
                     88:  * inserted 
                     89:  */
                     90: 
                     91: int
                     92: kerb_cache_put_principal(principal, max)
                     93:     Principal *principal;
                     94:     unsigned int max;          /* max number of principal structs to
                     95:                                 * insert */
                     96: 
                     97: {
                     98:     int     found = 0;
                     99:     u_long  i;
                    100:     int     count = 0;
                    101: 
                    102:     if (!init)
                    103:        kerb_cache_init();
                    104: 
                    105: #ifdef DEBUG
                    106:     if (kerb_debug & 2) {
                    107:        fprintf(stderr, "kerb_cache_put_principal  max = %d",
                    108:            max);
                    109:     }
                    110: #endif
                    111:     
                    112:     for (i = 0; i < max; i++) {
                    113: #ifdef DEBUG
                    114:        if (kerb_debug & 2)
                    115:            fprintf(stderr, "\n %s %s",
                    116:                    principal->name, principal->instance);
                    117: #endif 
                    118:        /* DO IT */
                    119:        count++;
                    120:        principal++;
                    121:     }
                    122:     return count;
                    123: }
                    124: 
                    125: /*
                    126:  * look up a dba in the cache returns number of dbas found 
                    127:  */
                    128: 
                    129: int
                    130: kerb_cache_get_dba(serv, inst, dba, max)
                    131:     char   *serv;              /* could have wild card */
                    132:     char   *inst;              /* could have wild card */
                    133:     Dba    *dba;
                    134:     unsigned int max;          /* max number of name structs to return */
                    135: 
                    136: {
                    137:     int     found = 0;
                    138:     u_long  i;
                    139: 
                    140:     if (!init)
                    141:        kerb_cache_init();
                    142: 
                    143: #ifdef DEBUG
                    144:     if (kerb_debug & 2)
                    145:        fprintf(stderr, "cache_get_dba for %s %s max = %d\n",
                    146:            serv, inst, max);
                    147: #endif
                    148: 
                    149: #ifdef DEBUG
                    150:     if (kerb_debug & 2) {
                    151:        if (found) {
                    152:            fprintf(stderr, "cache get %s %s found %s %s sid = %d\n",
                    153:                serv, inst, dba->name, dba->instance);
                    154:        } else {
                    155:            fprintf(stderr, "cache %s %s not found\n", serv, inst);
                    156:        }
                    157:     }
                    158: #endif
                    159:     return (found);
                    160: }
                    161: 
                    162: /*
                    163:  * insert/replace a dba in the cache returns number of dbas inserted 
                    164:  */
                    165: 
                    166: int
                    167: kerb_cache_put_dba(dba, max)
                    168:     Dba    *dba;
                    169:     unsigned int max;          /* max number of dba structs to insert */
                    170: 
                    171: {
                    172:     int     found = 0;
                    173:     u_long  i;
                    174:     int     count = 0;
                    175: 
                    176:     if (!init)
                    177:        kerb_cache_init();
                    178: #ifdef DEBUG
                    179:     if (kerb_debug & 2) {
                    180:        fprintf(stderr, "kerb_cache_put_dba  max = %d", max);
                    181:     }
                    182: #endif
                    183:     for (i = 0; i < max; i++) {
                    184: #ifdef DEBUG
                    185:        if (kerb_debug & 2)
                    186:            fprintf(stderr, "\n %s %s",
                    187:                    dba->name, dba->instance);
                    188: #endif 
                    189:        /* DO IT */
                    190:        count++;
                    191:        dba++;
                    192:     }
                    193:     return count;
                    194: }
                    195: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.