1 /* 2 * Copyright 2004 Sun Microsystems, Inc. All rights reserved. 3 * Use is subject to license terms. 4 */ 5 6 #ifndef _KRB5_RC_COM_H 7 #define _KRB5_RC_COM_H 8 9 #pragma ident "%Z%%M% %I% %E% SMI" 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 /* 16 * mech_krb5/krb5/rcache/rc_common.h 17 * 18 * This file of the Kerberos V5 software is derived from public-domain code 19 * contributed by Daniel J. Bernstein, <brnstnd@acf10.nyu.edu>. 20 */ 21 22 #include "rc_base.h" 23 #include "rc_io.h" 24 #include <k5-int.h> 25 26 /* 27 * Declarations shared for the file and memory replay cache implementation. 28 */ 29 30 #ifndef HASHSIZE 31 #define HASHSIZE 997 /* a convenient prime */ 32 #endif 33 34 #define CMP_MALLOC -3 35 #define CMP_EXPIRED -2 36 #define CMP_REPLAY -1 37 #define CMP_HOHUM 0 38 39 /* 40 * Solaris: made cmp a macro and removed unused t arg to help perf 41 */ 42 #define cmp(old, new) \ 43 (((old)->cusec == (new)->cusec) && \ 44 ((old)->ctime == (new)->ctime) && \ 45 (strcmp((old)->client, (new)->client) == 0) && \ 46 (strcmp((old)->server, (new)->server) == 0) ? CMP_REPLAY : CMP_HOHUM) 47 48 /* 49 * Solaris: made alive a macro and time a arg instead of calling 50 * krb5_timeofday() for better perf. 51 */ 52 #define alive(context, new, t, time) \ 53 (((new)->ctime + (t)) < (time) ? CMP_EXPIRED : CMP_HOHUM) 54 55 struct authlist { 56 krb5_donot_replay rep; 57 struct authlist *na; 58 struct authlist *nh; 59 }; 60 61 int hash(krb5_donot_replay *rep, int hsize); 62 63 #ifdef __cplusplus 64 } 65 #endif 66 67 #endif /* !_KRB5_RC_COM_H */ 68