From 105f1cee3b5c721bd947760e4684a79d5774e261 Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Fri, 30 Jul 2004 21:10:45 +0000 Subject: [PATCH] Implement new replay cache type "none" * rc_none.c: New file. * Makefile.in (SRCS, STLIBOBJS, OBJS): Build it. * rc-int.h (krb5_rc_none_ops): Declare. * rc_base.c (none): New variable. (krb5_rc_typelist_dfl): Add it into the linked list. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16634 dc483132-0cff-0310-8789-dd5450dbe970 --- src/lib/krb5/rcache/ChangeLog | 8 +++ src/lib/krb5/rcache/Makefile.in | 13 ++++- src/lib/krb5/rcache/rc-int.h | 1 + src/lib/krb5/rcache/rc_base.c | 3 +- src/lib/krb5/rcache/rc_none.c | 86 +++++++++++++++++++++++++++++++++ 5 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 src/lib/krb5/rcache/rc_none.c diff --git a/src/lib/krb5/rcache/ChangeLog b/src/lib/krb5/rcache/ChangeLog index 48c72b7be..bf5c2f7b5 100644 --- a/src/lib/krb5/rcache/ChangeLog +++ b/src/lib/krb5/rcache/ChangeLog @@ -1,3 +1,11 @@ +2004-07-30 Ken Raeburn + + * rc_none.c: New file. + * Makefile.in (SRCS, STLIBOBJS, OBJS): Build it. + * rc-int.h (krb5_rc_none_ops): Declare. + * rc_base.c (none): New variable. + (krb5_rc_typelist_dfl): Add it into the linked list. + 2004-07-16 Ken Raeburn * rc_io.c: Don't check for macsock.h. diff --git a/src/lib/krb5/rcache/Makefile.in b/src/lib/krb5/rcache/Makefile.in index 6fbc67c9d..c965b2893 100644 --- a/src/lib/krb5/rcache/Makefile.in +++ b/src/lib/krb5/rcache/Makefile.in @@ -12,6 +12,7 @@ STLIBOBJS = \ rc_dfl.o \ rc_io.o \ rcdef.o \ + rc_none.o \ rc_conv.o \ ser_rc.o \ rcfns.o @@ -19,8 +20,9 @@ STLIBOBJS = \ OBJS= \ $(OUTPRE)rc_base.$(OBJEXT) \ $(OUTPRE)rc_dfl.$(OBJEXT) \ - $(OUTPRE)rc_io.$(OBJEXT) \ - $(OUTPRE)rcdef.$(OBJEXT) \ + $(OUTPRE)rc_io.$(OBJEXT) \ + $(OUTPRE)rcdef.$(OBJEXT) \ + $(OUTPRE)rc_none.$(OBJEXT) \ $(OUTPRE)rc_conv.$(OBJEXT) \ $(OUTPRE)ser_rc.$(OBJEXT) \ $(OUTPRE)rcfns.$(OBJEXT) @@ -30,6 +32,7 @@ SRCS= \ $(srcdir)/rc_dfl.c \ $(srcdir)/rc_io.c \ $(srcdir)/rcdef.c \ + $(srcdir)/rc_none.c \ $(srcdir)/rc_conv.c \ $(srcdir)/ser_rc.c \ $(srcdir)/rcfns.c @@ -71,6 +74,12 @@ rcdef.so rcdef.po $(OUTPRE)rcdef.$(OBJEXT): rcdef.c $(SRCTOP)/include/k5-int.h \ $(BUILDTOP)/include/krb5.h $(COM_ERR_DEPS) $(BUILDTOP)/include/profile.h \ $(SRCTOP)/include/port-sockets.h $(SRCTOP)/include/socket-utils.h \ $(SRCTOP)/include/krb5/kdb.h rc-int.h rc_dfl.h +rc_none.so rc_none.po $(OUTPRE)rc_none.$(OBJEXT): rc_none.c $(SRCTOP)/include/k5-int.h \ + $(BUILDTOP)/include/krb5/osconf.h $(BUILDTOP)/include/krb5/autoconf.h \ + $(SRCTOP)/include/k5-platform.h $(SRCTOP)/include/k5-thread.h \ + $(BUILDTOP)/include/krb5.h $(COM_ERR_DEPS) $(BUILDTOP)/include/profile.h \ + $(SRCTOP)/include/port-sockets.h $(SRCTOP)/include/socket-utils.h \ + $(SRCTOP)/include/krb5/kdb.h rc-int.h rc_conv.so rc_conv.po $(OUTPRE)rc_conv.$(OBJEXT): rc_conv.c rc_base.h $(SRCTOP)/include/k5-int.h \ $(BUILDTOP)/include/krb5/osconf.h $(BUILDTOP)/include/krb5/autoconf.h \ $(SRCTOP)/include/k5-platform.h $(SRCTOP)/include/k5-thread.h \ diff --git a/src/lib/krb5/rcache/rc-int.h b/src/lib/krb5/rcache/rc-int.h index d64c34857..239f0c0a7 100644 --- a/src/lib/krb5/rcache/rc-int.h +++ b/src/lib/krb5/rcache/rc-int.h @@ -70,5 +70,6 @@ typedef struct _krb5_rc_ops krb5_rc_ops; krb5_error_code krb5_rc_register_type (krb5_context, const krb5_rc_ops *); extern const krb5_rc_ops krb5_rc_dfl_ops; +extern const krb5_rc_ops krb5_rc_none_ops; #endif /* __KRB5_RCACHE_INT_H__ */ diff --git a/src/lib/krb5/rcache/rc_base.c b/src/lib/krb5/rcache/rc_base.c index 4146cc8d6..e9f9505c5 100644 --- a/src/lib/krb5/rcache/rc_base.c +++ b/src/lib/krb5/rcache/rc_base.c @@ -21,7 +21,8 @@ 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_dfl_ops, 0 }; +static struct krb5_rc_typelist none = { &krb5_rc_none_ops, 0 }; +static struct krb5_rc_typelist krb5_rc_typelist_dfl = { &krb5_rc_dfl_ops, &none }; static struct krb5_rc_typelist *typehead = &krb5_rc_typelist_dfl; static k5_mutex_t rc_typelist_lock = K5_MUTEX_PARTIAL_INITIALIZER; diff --git a/src/lib/krb5/rcache/rc_none.c b/src/lib/krb5/rcache/rc_none.c new file mode 100644 index 000000000..3ad45247b --- /dev/null +++ b/src/lib/krb5/rcache/rc_none.c @@ -0,0 +1,86 @@ +/* + * lib/krb5/rcache/rc_none.c + * + * Copyright 2004 by the Massachusetts Institute of Technology. + * All Rights Reserved. + * + * Export of this software from the United States of America may + * require a specific license from the United States Government. + * It is the responsibility of any person or organization contemplating + * export to obtain such a license before exporting. + * + * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and + * distribute this software and its documentation for any purpose and + * without fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright notice and + * this permission notice appear in supporting documentation, and that + * the name of M.I.T. not be used in advertising or publicity pertaining + * to distribution of the software without specific, written prior + * permission. Furthermore if you modify this software you must label + * your software as modified software and not distribute it in such a + * fashion that it might be confused with the original M.I.T. software. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" without express + * or implied warranty. + * + * + * replay cache no-op implementation + */ + +#include "k5-int.h" +#include "rc-int.h" + +static krb5_error_code KRB5_CALLCONV +krb5_rc_none_init(krb5_context ctx, krb5_rcache rc, krb5_deltat d) +{ + return 0; +} + +static krb5_error_code KRB5_CALLCONV +krb5_rc_none_noargs(krb5_context ctx, krb5_rcache rc) +{ + return 0; +} +#define krb5_rc_none_recover krb5_rc_none_noargs +#define krb5_rc_none_destroy krb5_rc_none_noargs +#define krb5_rc_none_close krb5_rc_none_noargs +#define krb5_rc_none_expunge krb5_rc_none_noargs + +static krb5_error_code KRB5_CALLCONV +krb5_rc_none_store(krb5_context ctx, krb5_rcache rc, krb5_donot_replay *r) +{ + return 0; +} + +static krb5_error_code KRB5_CALLCONV +krb5_rc_none_get_span(krb5_context ctx, krb5_rcache rc, krb5_deltat *d) +{ + return 0; +} + +static char * KRB5_CALLCONV +krb5_rc_none_get_name(krb5_context ctx, krb5_rcache rc) +{ + return ""; +} + +static krb5_error_code KRB5_CALLCONV +krb5_rc_none_resolve(krb5_context ctx, krb5_rcache rc, char *name) +{ + rc->data = "none"; + return 0; +} + +const krb5_rc_ops krb5_rc_none_ops = { + 0, + "none", + krb5_rc_none_init, + krb5_rc_none_recover, + krb5_rc_none_destroy, + krb5_rc_none_close, + krb5_rc_none_store, + krb5_rc_none_expunge, + krb5_rc_none_get_span, + krb5_rc_none_get_name, + krb5_rc_none_resolve +}; -- 2.26.2