Move the `pqueue' part of libcrypto, which is a glorified sorted linked list
authormiod <miod@openbsd.org>
Mon, 12 May 2014 19:14:14 +0000 (19:14 +0000)
committermiod <miod@openbsd.org>
Mon, 12 May 2014 19:14:14 +0000 (19:14 +0000)
of 64-bit data, and only used by DTLS, to libssl where it belongs.

Remove pqueue_print() which is a debugging interface and serves no useful
purpose, except for the regress test, which grows its own pqueue_print()
routine.

Bump libcrypto major and libssl minor.

WARNING: do not update your tree right now, more changes are coming, which
will ride the libcrypto major bump.

16 files changed:
lib/libcrypto/crypto/Makefile
lib/libcrypto/crypto/shlib_version
lib/libcrypto/pqueue/pqueue.c [deleted file]
lib/libcrypto/pqueue/pqueue.h [deleted file]
lib/libcrypto/shlib_version
lib/libssl/pqueue.c [new file with mode: 0644]
lib/libssl/pqueue.h [new file with mode: 0644]
lib/libssl/shlib_version
lib/libssl/src/crypto/pqueue/pqueue.c [deleted file]
lib/libssl/src/crypto/pqueue/pqueue.h [deleted file]
lib/libssl/src/ssl/pqueue.c [new file with mode: 0644]
lib/libssl/src/ssl/pqueue.h [new file with mode: 0644]
lib/libssl/ssl/Makefile
lib/libssl/ssl/shlib_version
regress/lib/libcrypto/pqueue/Makefile
regress/lib/libcrypto/pqueue/pq_test.c

index 5fefdb1..ce04ac9 100644 (file)
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.31 2014/05/04 17:12:19 miod Exp $
+# $OpenBSD: Makefile,v 1.32 2014/05/12 19:14:14 miod Exp $
 
 LIB=   crypto
 
@@ -198,9 +198,6 @@ SRCS+= p12_utl.c p12_npas.c pk12err.c p12_p8d.c p12_p8e.c
 SRCS+= pk7_asn1.c pk7_lib.c pkcs7err.c pk7_doit.c pk7_smime.c pk7_attr.c
 SRCS+= pk7_mime.c bio_pk7.c
 
-# pqueue/
-SRCS+= pqueue.c
-
 # rand/
 SRCS+= randfile.c rand_lib.c rand_err.c
 
@@ -304,7 +301,6 @@ SRCS+= v3_asid.c v3_addr.c
        ${LCRYPTO_SRC}/perlasm \
        ${LCRYPTO_SRC}/pkcs12 \
        ${LCRYPTO_SRC}/pkcs7 \
-       ${LCRYPTO_SRC}/pqueue \
        ${LCRYPTO_SRC}/rand \
        ${LCRYPTO_SRC}/rc2 \
        ${LCRYPTO_SRC}/rc4 \
@@ -367,7 +363,6 @@ HDRS=\
        crypto/pem/pem2.h \
        crypto/pkcs12/pkcs12.h \
        crypto/pkcs7/pkcs7.h \
-       crypto/pqueue/pqueue.h \
        crypto/rand/rand.h \
        crypto/rc2/rc2.h \
        crypto/rc4/rc4.h \
diff --git a/lib/libcrypto/pqueue/pqueue.c b/lib/libcrypto/pqueue/pqueue.c
deleted file mode 100644 (file)
index fc68ae1..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-/* crypto/pqueue/pqueue.c */
-/*
- * DTLS implementation written by Nagendra Modadugu
- * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
- */
-/* ====================================================================
- * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@OpenSSL.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#include "cryptlib.h"
-#include <openssl/bn.h>
-#include "pqueue.h"
-
-typedef struct _pqueue {
-       pitem *items;
-       int count;
-} pqueue_s;
-
-pitem *
-pitem_new(unsigned char *prio64be, void *data)
-{
-       pitem *item = (pitem *)malloc(sizeof(pitem));
-
-       if (item == NULL)
-               return NULL;
-
-       memcpy(item->priority, prio64be, sizeof(item->priority));
-
-       item->data = data;
-       item->next = NULL;
-
-       return item;
-}
-
-void
-pitem_free(pitem *item)
-{
-       if (item == NULL)
-               return;
-
-       free(item);
-}
-
-pqueue_s *
-pqueue_new(void)
-{
-       pqueue_s *pq = (pqueue_s *)malloc(sizeof(pqueue_s));
-
-       if (pq == NULL)
-               return NULL;
-
-       memset(pq, 0x00, sizeof(pqueue_s));
-       return pq;
-}
-
-void
-pqueue_free(pqueue_s *pq)
-{
-       if (pq == NULL)
-               return;
-
-       free(pq);
-}
-
-pitem *
-pqueue_insert(pqueue_s *pq, pitem *item)
-{
-       pitem *curr, *next;
-
-       if (pq->items == NULL) {
-               pq->items = item;
-               return item;
-       }
-
-       for (curr = NULL, next = pq->items; next != NULL;
-           curr = next, next = next->next) {
-               /* we can compare 64-bit value in big-endian encoding
-                * with memcmp:-) */
-               int cmp = memcmp(next->priority, item->priority,
-                                sizeof(item->priority));
-               if (cmp > 0)            /* next > item */
-               {
-                       item->next = next;
-
-                       if (curr == NULL)
-                               pq->items = item;
-                       else
-                               curr->next = item;
-
-                       return item;
-               } else if (cmp == 0)    /* duplicates not allowed */
-                       return NULL;
-       }
-
-       item->next = NULL;
-       curr->next = item;
-
-       return item;
-}
-
-pitem *
-pqueue_peek(pqueue_s *pq)
-{
-       return pq->items;
-}
-
-pitem *
-pqueue_pop(pqueue_s *pq)
-{
-       pitem *item = pq->items;
-
-       if (pq->items != NULL)
-               pq->items = pq->items->next;
-
-       return item;
-}
-
-pitem *
-pqueue_find(pqueue_s *pq, unsigned char *prio64be)
-{
-       pitem *next;
-       pitem *found = NULL;
-
-       if (pq->items == NULL)
-               return NULL;
-
-       for (next = pq->items; next != NULL; next = next->next) {
-               if (memcmp(next->priority, prio64be, 8) == 0) {
-                       found = next;
-                       break;
-               }
-       }
-
-       if (!found)
-               return NULL;
-
-       return found;
-}
-
-void
-pqueue_print(pqueue_s *pq)
-{
-       pitem *item = pq->items;
-
-       while (item != NULL) {
-               printf("item\t%02x%02x%02x%02x%02x%02x%02x%02x\n",
-                   item->priority[0], item->priority[1],
-                   item->priority[2], item->priority[3],
-                   item->priority[4], item->priority[5],
-                   item->priority[6], item->priority[7]);
-               item = item->next;
-       }
-}
-
-pitem *
-pqueue_iterator(pqueue_s *pq)
-{
-       return pqueue_peek(pq);
-}
-
-pitem *
-pqueue_next(pitem **item)
-{
-       pitem *ret;
-
-       if (item == NULL || *item == NULL)
-               return NULL;
-
-       /* *item != NULL */
-       ret = *item;
-       *item = (*item)->next;
-
-       return ret;
-}
-
-int
-pqueue_size(pqueue_s *pq)
-{
-       pitem *item = pq->items;
-       int count = 0;
-
-       while (item != NULL) {
-               count++;
-               item = item->next;
-       }
-       return count;
-}
diff --git a/lib/libcrypto/pqueue/pqueue.h b/lib/libcrypto/pqueue/pqueue.h
deleted file mode 100644 (file)
index 729e9ab..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/* crypto/pqueue/pqueue.h */
-/*
- * DTLS implementation written by Nagendra Modadugu
- * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
- */
-/* ====================================================================
- * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@OpenSSL.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#ifndef HEADER_PQUEUE_H
-#define HEADER_PQUEUE_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct _pqueue *pqueue;
-
-typedef struct _pitem {
-       unsigned char priority[8]; /* 64-bit value in big-endian encoding */
-       void *data;
-       struct _pitem *next;
-} pitem;
-
-typedef struct _pitem *piterator;
-
-pitem *pitem_new(unsigned char *prio64be, void *data);
-void   pitem_free(pitem *item);
-
-pqueue pqueue_new(void);
-void   pqueue_free(pqueue pq);
-
-pitem *pqueue_insert(pqueue pq, pitem *item);
-pitem *pqueue_peek(pqueue pq);
-pitem *pqueue_pop(pqueue pq);
-pitem *pqueue_find(pqueue pq, unsigned char *prio64be);
-pitem *pqueue_iterator(pqueue pq);
-pitem *pqueue_next(piterator *iter);
-
-void   pqueue_print(pqueue pq);
-int    pqueue_size(pqueue pq);
-
-#endif /* ! HEADER_PQUEUE_H */
index 72168df..54ef0c4 100644 (file)
@@ -1,2 +1,2 @@
-major=26
-minor=1
+major=27
+minor=0
diff --git a/lib/libssl/pqueue.c b/lib/libssl/pqueue.c
new file mode 100644 (file)
index 0000000..99c118c
--- /dev/null
@@ -0,0 +1,222 @@
+/* crypto/pqueue/pqueue.c */
+/*
+ * DTLS implementation written by Nagendra Modadugu
+ * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
+ */
+/* ====================================================================
+ * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@OpenSSL.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com).  This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+#include <string.h>
+#include "pqueue.h"
+
+typedef struct _pqueue {
+       pitem *items;
+       int count;
+} pqueue_s;
+
+pitem *
+pitem_new(unsigned char *prio64be, void *data)
+{
+       pitem *item = (pitem *)malloc(sizeof(pitem));
+
+       if (item == NULL)
+               return NULL;
+
+       memcpy(item->priority, prio64be, sizeof(item->priority));
+
+       item->data = data;
+       item->next = NULL;
+
+       return item;
+}
+
+void
+pitem_free(pitem *item)
+{
+       if (item == NULL)
+               return;
+
+       free(item);
+}
+
+pqueue_s *
+pqueue_new(void)
+{
+       pqueue_s *pq = (pqueue_s *)malloc(sizeof(pqueue_s));
+
+       if (pq == NULL)
+               return NULL;
+
+       memset(pq, 0x00, sizeof(pqueue_s));
+       return pq;
+}
+
+void
+pqueue_free(pqueue_s *pq)
+{
+       if (pq == NULL)
+               return;
+
+       free(pq);
+}
+
+pitem *
+pqueue_insert(pqueue_s *pq, pitem *item)
+{
+       pitem *curr, *next;
+
+       if (pq->items == NULL) {
+               pq->items = item;
+               return item;
+       }
+
+       for (curr = NULL, next = pq->items; next != NULL;
+           curr = next, next = next->next) {
+               /* we can compare 64-bit value in big-endian encoding
+                * with memcmp:-) */
+               int cmp = memcmp(next->priority, item->priority,
+                                sizeof(item->priority));
+               if (cmp > 0)            /* next > item */
+               {
+                       item->next = next;
+
+                       if (curr == NULL)
+                               pq->items = item;
+                       else
+                               curr->next = item;
+
+                       return item;
+               } else if (cmp == 0)    /* duplicates not allowed */
+                       return NULL;
+       }
+
+       item->next = NULL;
+       curr->next = item;
+
+       return item;
+}
+
+pitem *
+pqueue_peek(pqueue_s *pq)
+{
+       return pq->items;
+}
+
+pitem *
+pqueue_pop(pqueue_s *pq)
+{
+       pitem *item = pq->items;
+
+       if (pq->items != NULL)
+               pq->items = pq->items->next;
+
+       return item;
+}
+
+pitem *
+pqueue_find(pqueue_s *pq, unsigned char *prio64be)
+{
+       pitem *next;
+       pitem *found = NULL;
+
+       if (pq->items == NULL)
+               return NULL;
+
+       for (next = pq->items; next != NULL; next = next->next) {
+               if (memcmp(next->priority, prio64be,
+                   sizeof(next->priority)) == 0) {
+                       found = next;
+                       break;
+               }
+       }
+
+       if (!found)
+               return NULL;
+
+       return found;
+}
+
+pitem *
+pqueue_iterator(pqueue_s *pq)
+{
+       return pqueue_peek(pq);
+}
+
+pitem *
+pqueue_next(pitem **item)
+{
+       pitem *ret;
+
+       if (item == NULL || *item == NULL)
+               return NULL;
+
+       /* *item != NULL */
+       ret = *item;
+       *item = (*item)->next;
+
+       return ret;
+}
+
+int
+pqueue_size(pqueue_s *pq)
+{
+       pitem *item = pq->items;
+       int count = 0;
+
+       while (item != NULL) {
+               count++;
+               item = item->next;
+       }
+       return count;
+}
diff --git a/lib/libssl/pqueue.h b/lib/libssl/pqueue.h
new file mode 100644 (file)
index 0000000..6e7df8f
--- /dev/null
@@ -0,0 +1,92 @@
+/* crypto/pqueue/pqueue.h */
+/*
+ * DTLS implementation written by Nagendra Modadugu
+ * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
+ */
+/* ====================================================================
+ * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@OpenSSL.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com).  This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+#ifndef HEADER_PQUEUE_H
+#define HEADER_PQUEUE_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef struct _pqueue *pqueue;
+
+typedef struct _pitem {
+       unsigned char priority[8]; /* 64-bit value in big-endian encoding */
+       void *data;
+       struct _pitem *next;
+} pitem;
+
+typedef struct _pitem *piterator;
+
+pitem *pitem_new(unsigned char *prio64be, void *data);
+void   pitem_free(pitem *item);
+
+pqueue pqueue_new(void);
+void   pqueue_free(pqueue pq);
+
+pitem *pqueue_insert(pqueue pq, pitem *item);
+pitem *pqueue_peek(pqueue pq);
+pitem *pqueue_pop(pqueue pq);
+pitem *pqueue_find(pqueue pq, unsigned char *prio64be);
+pitem *pqueue_iterator(pqueue pq);
+pitem *pqueue_next(piterator *iter);
+
+int    pqueue_size(pqueue pq);
+
+#endif /* ! HEADER_PQUEUE_H */
index 906022a..aa54cbb 100644 (file)
@@ -1,2 +1,2 @@
 major=24
-minor=0
+minor=1
diff --git a/lib/libssl/src/crypto/pqueue/pqueue.c b/lib/libssl/src/crypto/pqueue/pqueue.c
deleted file mode 100644 (file)
index fc68ae1..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-/* crypto/pqueue/pqueue.c */
-/*
- * DTLS implementation written by Nagendra Modadugu
- * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
- */
-/* ====================================================================
- * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@OpenSSL.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#include "cryptlib.h"
-#include <openssl/bn.h>
-#include "pqueue.h"
-
-typedef struct _pqueue {
-       pitem *items;
-       int count;
-} pqueue_s;
-
-pitem *
-pitem_new(unsigned char *prio64be, void *data)
-{
-       pitem *item = (pitem *)malloc(sizeof(pitem));
-
-       if (item == NULL)
-               return NULL;
-
-       memcpy(item->priority, prio64be, sizeof(item->priority));
-
-       item->data = data;
-       item->next = NULL;
-
-       return item;
-}
-
-void
-pitem_free(pitem *item)
-{
-       if (item == NULL)
-               return;
-
-       free(item);
-}
-
-pqueue_s *
-pqueue_new(void)
-{
-       pqueue_s *pq = (pqueue_s *)malloc(sizeof(pqueue_s));
-
-       if (pq == NULL)
-               return NULL;
-
-       memset(pq, 0x00, sizeof(pqueue_s));
-       return pq;
-}
-
-void
-pqueue_free(pqueue_s *pq)
-{
-       if (pq == NULL)
-               return;
-
-       free(pq);
-}
-
-pitem *
-pqueue_insert(pqueue_s *pq, pitem *item)
-{
-       pitem *curr, *next;
-
-       if (pq->items == NULL) {
-               pq->items = item;
-               return item;
-       }
-
-       for (curr = NULL, next = pq->items; next != NULL;
-           curr = next, next = next->next) {
-               /* we can compare 64-bit value in big-endian encoding
-                * with memcmp:-) */
-               int cmp = memcmp(next->priority, item->priority,
-                                sizeof(item->priority));
-               if (cmp > 0)            /* next > item */
-               {
-                       item->next = next;
-
-                       if (curr == NULL)
-                               pq->items = item;
-                       else
-                               curr->next = item;
-
-                       return item;
-               } else if (cmp == 0)    /* duplicates not allowed */
-                       return NULL;
-       }
-
-       item->next = NULL;
-       curr->next = item;
-
-       return item;
-}
-
-pitem *
-pqueue_peek(pqueue_s *pq)
-{
-       return pq->items;
-}
-
-pitem *
-pqueue_pop(pqueue_s *pq)
-{
-       pitem *item = pq->items;
-
-       if (pq->items != NULL)
-               pq->items = pq->items->next;
-
-       return item;
-}
-
-pitem *
-pqueue_find(pqueue_s *pq, unsigned char *prio64be)
-{
-       pitem *next;
-       pitem *found = NULL;
-
-       if (pq->items == NULL)
-               return NULL;
-
-       for (next = pq->items; next != NULL; next = next->next) {
-               if (memcmp(next->priority, prio64be, 8) == 0) {
-                       found = next;
-                       break;
-               }
-       }
-
-       if (!found)
-               return NULL;
-
-       return found;
-}
-
-void
-pqueue_print(pqueue_s *pq)
-{
-       pitem *item = pq->items;
-
-       while (item != NULL) {
-               printf("item\t%02x%02x%02x%02x%02x%02x%02x%02x\n",
-                   item->priority[0], item->priority[1],
-                   item->priority[2], item->priority[3],
-                   item->priority[4], item->priority[5],
-                   item->priority[6], item->priority[7]);
-               item = item->next;
-       }
-}
-
-pitem *
-pqueue_iterator(pqueue_s *pq)
-{
-       return pqueue_peek(pq);
-}
-
-pitem *
-pqueue_next(pitem **item)
-{
-       pitem *ret;
-
-       if (item == NULL || *item == NULL)
-               return NULL;
-
-       /* *item != NULL */
-       ret = *item;
-       *item = (*item)->next;
-
-       return ret;
-}
-
-int
-pqueue_size(pqueue_s *pq)
-{
-       pitem *item = pq->items;
-       int count = 0;
-
-       while (item != NULL) {
-               count++;
-               item = item->next;
-       }
-       return count;
-}
diff --git a/lib/libssl/src/crypto/pqueue/pqueue.h b/lib/libssl/src/crypto/pqueue/pqueue.h
deleted file mode 100644 (file)
index 729e9ab..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/* crypto/pqueue/pqueue.h */
-/*
- * DTLS implementation written by Nagendra Modadugu
- * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
- */
-/* ====================================================================
- * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- *    software must display the following acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- *    endorse or promote products derived from this software without
- *    prior written permission. For written permission, please contact
- *    openssl-core@OpenSSL.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- *    nor may "OpenSSL" appear in their names without prior written
- *    permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- *    acknowledgment:
- *    "This product includes software developed by the OpenSSL Project
- *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com).  This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
-#ifndef HEADER_PQUEUE_H
-#define HEADER_PQUEUE_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-typedef struct _pqueue *pqueue;
-
-typedef struct _pitem {
-       unsigned char priority[8]; /* 64-bit value in big-endian encoding */
-       void *data;
-       struct _pitem *next;
-} pitem;
-
-typedef struct _pitem *piterator;
-
-pitem *pitem_new(unsigned char *prio64be, void *data);
-void   pitem_free(pitem *item);
-
-pqueue pqueue_new(void);
-void   pqueue_free(pqueue pq);
-
-pitem *pqueue_insert(pqueue pq, pitem *item);
-pitem *pqueue_peek(pqueue pq);
-pitem *pqueue_pop(pqueue pq);
-pitem *pqueue_find(pqueue pq, unsigned char *prio64be);
-pitem *pqueue_iterator(pqueue pq);
-pitem *pqueue_next(piterator *iter);
-
-void   pqueue_print(pqueue pq);
-int    pqueue_size(pqueue pq);
-
-#endif /* ! HEADER_PQUEUE_H */
diff --git a/lib/libssl/src/ssl/pqueue.c b/lib/libssl/src/ssl/pqueue.c
new file mode 100644 (file)
index 0000000..99c118c
--- /dev/null
@@ -0,0 +1,222 @@
+/* crypto/pqueue/pqueue.c */
+/*
+ * DTLS implementation written by Nagendra Modadugu
+ * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
+ */
+/* ====================================================================
+ * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@OpenSSL.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com).  This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+#include <string.h>
+#include "pqueue.h"
+
+typedef struct _pqueue {
+       pitem *items;
+       int count;
+} pqueue_s;
+
+pitem *
+pitem_new(unsigned char *prio64be, void *data)
+{
+       pitem *item = (pitem *)malloc(sizeof(pitem));
+
+       if (item == NULL)
+               return NULL;
+
+       memcpy(item->priority, prio64be, sizeof(item->priority));
+
+       item->data = data;
+       item->next = NULL;
+
+       return item;
+}
+
+void
+pitem_free(pitem *item)
+{
+       if (item == NULL)
+               return;
+
+       free(item);
+}
+
+pqueue_s *
+pqueue_new(void)
+{
+       pqueue_s *pq = (pqueue_s *)malloc(sizeof(pqueue_s));
+
+       if (pq == NULL)
+               return NULL;
+
+       memset(pq, 0x00, sizeof(pqueue_s));
+       return pq;
+}
+
+void
+pqueue_free(pqueue_s *pq)
+{
+       if (pq == NULL)
+               return;
+
+       free(pq);
+}
+
+pitem *
+pqueue_insert(pqueue_s *pq, pitem *item)
+{
+       pitem *curr, *next;
+
+       if (pq->items == NULL) {
+               pq->items = item;
+               return item;
+       }
+
+       for (curr = NULL, next = pq->items; next != NULL;
+           curr = next, next = next->next) {
+               /* we can compare 64-bit value in big-endian encoding
+                * with memcmp:-) */
+               int cmp = memcmp(next->priority, item->priority,
+                                sizeof(item->priority));
+               if (cmp > 0)            /* next > item */
+               {
+                       item->next = next;
+
+                       if (curr == NULL)
+                               pq->items = item;
+                       else
+                               curr->next = item;
+
+                       return item;
+               } else if (cmp == 0)    /* duplicates not allowed */
+                       return NULL;
+       }
+
+       item->next = NULL;
+       curr->next = item;
+
+       return item;
+}
+
+pitem *
+pqueue_peek(pqueue_s *pq)
+{
+       return pq->items;
+}
+
+pitem *
+pqueue_pop(pqueue_s *pq)
+{
+       pitem *item = pq->items;
+
+       if (pq->items != NULL)
+               pq->items = pq->items->next;
+
+       return item;
+}
+
+pitem *
+pqueue_find(pqueue_s *pq, unsigned char *prio64be)
+{
+       pitem *next;
+       pitem *found = NULL;
+
+       if (pq->items == NULL)
+               return NULL;
+
+       for (next = pq->items; next != NULL; next = next->next) {
+               if (memcmp(next->priority, prio64be,
+                   sizeof(next->priority)) == 0) {
+                       found = next;
+                       break;
+               }
+       }
+
+       if (!found)
+               return NULL;
+
+       return found;
+}
+
+pitem *
+pqueue_iterator(pqueue_s *pq)
+{
+       return pqueue_peek(pq);
+}
+
+pitem *
+pqueue_next(pitem **item)
+{
+       pitem *ret;
+
+       if (item == NULL || *item == NULL)
+               return NULL;
+
+       /* *item != NULL */
+       ret = *item;
+       *item = (*item)->next;
+
+       return ret;
+}
+
+int
+pqueue_size(pqueue_s *pq)
+{
+       pitem *item = pq->items;
+       int count = 0;
+
+       while (item != NULL) {
+               count++;
+               item = item->next;
+       }
+       return count;
+}
diff --git a/lib/libssl/src/ssl/pqueue.h b/lib/libssl/src/ssl/pqueue.h
new file mode 100644 (file)
index 0000000..6e7df8f
--- /dev/null
@@ -0,0 +1,92 @@
+/* crypto/pqueue/pqueue.h */
+/*
+ * DTLS implementation written by Nagendra Modadugu
+ * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
+ */
+/* ====================================================================
+ * Copyright (c) 1999-2005 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@OpenSSL.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com).  This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+#ifndef HEADER_PQUEUE_H
+#define HEADER_PQUEUE_H
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+typedef struct _pqueue *pqueue;
+
+typedef struct _pitem {
+       unsigned char priority[8]; /* 64-bit value in big-endian encoding */
+       void *data;
+       struct _pitem *next;
+} pitem;
+
+typedef struct _pitem *piterator;
+
+pitem *pitem_new(unsigned char *prio64be, void *data);
+void   pitem_free(pitem *item);
+
+pqueue pqueue_new(void);
+void   pqueue_free(pqueue pq);
+
+pitem *pqueue_insert(pqueue pq, pitem *item);
+pitem *pqueue_peek(pqueue pq);
+pitem *pqueue_pop(pqueue pq);
+pitem *pqueue_find(pqueue pq, unsigned char *prio64be);
+pitem *pqueue_iterator(pqueue pq);
+pitem *pqueue_next(piterator *iter);
+
+int    pqueue_size(pqueue pq);
+
+#endif /* ! HEADER_PQUEUE_H */
index 737121f..8975572 100644 (file)
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.41 2014/05/05 15:03:22 tedu Exp $
+# $OpenBSD: Makefile,v 1.42 2014/05/12 19:14:14 miod Exp $
 
 LIB=   ssl
 
@@ -19,10 +19,11 @@ SRCS=\
        ssl_lib.c ssl_err2.c ssl_cert.c ssl_sess.c \
        ssl_ciph.c ssl_stat.c ssl_rsa.c \
        ssl_asn1.c ssl_txt.c ssl_algs.c \
-       bio_ssl.c ssl_err.c t1_reneg.c
+       bio_ssl.c ssl_err.c t1_reneg.c \
+       pqueue.c
 SRCS+= s3_cbc.c
 
-HDRS=  srtp.h ssl.h ssl2.h ssl3.h ssl23.h tls1.h dtls1.h kssl.h
+HDRS=  srtp.h ssl.h ssl2.h ssl3.h ssl23.h tls1.h dtls1.h kssl.h pqueue.h
 
 .PATH: ${LSSL_SRC}
 
index b817169..8b2d27e 100644 (file)
@@ -1,11 +1,9 @@
-#      $OpenBSD: Makefile,v 1.2 2014/05/06 20:40:26 miod Exp $
+#      $OpenBSD: Makefile,v 1.3 2014/05/12 19:14:14 miod Exp $
 
 PROG=  pq_test
-CRYPTO=        ${.CURDIR}/../../../../lib/libssl/src/crypto
-CFLAGS+= -I${CRYPTO}/pqueue
 
-LDADD= -lcrypto
-DPADD= ${LIBCRYPTO}
+LDADD= -lssl -lcrypto
+DPADD= ${LIBSSL} ${LIBCRYPTO}
 
 REGRESS_TARGETS= regress-pq_test
 
index 32c39cd..fa78c8f 100644 (file)
  *
  */
 
-#include "pqueue.h"
+#include <openssl/pqueue.h>
 
 /* remember to change expected.txt if you change these values */
 unsigned char prio1[8] = "supercal";
 unsigned char prio2[8] = "ifragili";
 unsigned char prio3[8] = "sticexpi";
 
+static void
+pqueue_print(pqueue pq)
+{
+       pitem *iter, *item;
+
+       iter = pqueue_iterator(pq);
+       for (item = pqueue_next(&iter); item != NULL;
+           item = pqueue_next(&iter)) {
+               printf("item\t%02x%02x%02x%02x%02x%02x%02x%02x\n",
+                   item->priority[0], item->priority[1],
+                   item->priority[2], item->priority[3],
+                   item->priority[4], item->priority[5],
+                   item->priority[6], item->priority[7]);
+       }
+}
+
 int
 main(void)
 {
@@ -82,13 +98,13 @@ main(void)
        pqueue_insert(pq, item);
 
        item = pqueue_find(pq, prio1);
-       fprintf(stderr, "found %ld\n", item->priority);
+       fprintf(stderr, "found %p\n", item->priority);
 
        item = pqueue_find(pq, prio2);
-       fprintf(stderr, "found %ld\n", item->priority);
+       fprintf(stderr, "found %p\n", item->priority);
 
        item = pqueue_find(pq, prio3);
-       fprintf(stderr, "found %ld\n", item ? item->priority: 0);
+       fprintf(stderr, "found %p\n", item ? item->priority: 0);
 
        pqueue_print(pq);