summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi/generic/util_set.c
diff options
context:
space:
mode:
authorMarc Horowitz <marc@mit.edu>1996-04-12 00:40:24 +0000
committerMarc Horowitz <marc@mit.edu>1996-04-12 00:40:24 +0000
commit8c52f12d549bf919078def74f25f36fd921f521a (patch)
tree388a04d2439e85dbe5b7c10108067b0b60f48873 /src/lib/gssapi/generic/util_set.c
parenta2cba160938beca6083cca233ba2573ea8bd0d89 (diff)
downloadkrb5-8c52f12d549bf919078def74f25f36fd921f521a.tar.gz
krb5-8c52f12d549bf919078def74f25f36fd921f521a.tar.xz
krb5-8c52f12d549bf919078def74f25f36fd921f521a.zip
Integrated OpenVision's changes into the most recent MIT code. This
revision is what I'd call the easy stuff. Some more controversial stuff remains to be done, which is why I'm doing a checkin now. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7797 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi/generic/util_set.c')
-rw-r--r--src/lib/gssapi/generic/util_set.c103
1 files changed, 103 insertions, 0 deletions
diff --git a/src/lib/gssapi/generic/util_set.c b/src/lib/gssapi/generic/util_set.c
new file mode 100644
index 000000000..169ccb28a
--- /dev/null
+++ b/src/lib/gssapi/generic/util_set.c
@@ -0,0 +1,103 @@
+/*
+ * Copyright 1995 by OpenVision Technologies, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appears in all copies and
+ * that both that copyright notice and this permission notice appear in
+ * supporting documentation, and that the name of OpenVision not be used
+ * in advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. OpenVision makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ *
+ * OPENVISION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL OPENVISION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
+ * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * $Id$
+ */
+
+#include "gssapiP_generic.h"
+
+struct _g_set {
+ void *key;
+ void *value;
+ struct _g_set *next;
+};
+
+int g_set_init(g_set *s)
+{
+ *s = NULL;
+
+ return(0);
+}
+
+int g_set_destroy(g_set *s)
+{
+ g_set next;
+
+ while (*s) {
+ next = (*s)->next;
+ free(*s);
+ *s = next;
+ }
+
+ return(0);
+}
+
+int g_set_entry_add(g_set *s, void *key, void *value)
+{
+ g_set first;
+
+ if ((first = (struct _g_set *) malloc(sizeof(struct _g_set))) == NULL)
+ return(ENOMEM);
+
+ first->key = key;
+ first->value = value;
+ first->next = *s;
+
+ *s = first;
+
+ return(0);
+}
+
+int g_set_entry_delete(g_set *s, void *key)
+{
+ g_set *p;
+
+ for (p=s; *p; p = &((*p)->next)) {
+ if ((*p)->key == key) {
+ g_set next = (*p)->next;
+ free(*p);
+ *p = next;
+
+ return(0);
+ }
+ }
+
+ return(-1);
+}
+
+int g_set_entry_get(g_set *s, void *key, void **value)
+{
+ g_set p;
+
+ for (p = *s; p; p = p->next) {
+ if (p->key == key) {
+ *value = p->value;
+
+ return(0);
+ }
+ }
+
+ *value = NULL;
+
+ return(-1);
+}