aboutsummaryrefslogtreecommitdiff
path: root/openssl/crypto/pqueue
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2015-02-22 14:43:31 +0100
committermarha <marha@users.sourceforge.net>2015-02-22 14:43:31 +0100
commitc9aad1ae6227c434d480d1d3aa8eae3c3c910c18 (patch)
tree94b917df998c3d547e191b3b9c58bbffc616470e /openssl/crypto/pqueue
parentf1c2db43dcf35d2cf4715390bd2391c28e42a8c2 (diff)
downloadvcxsrv-c9aad1ae6227c434d480d1d3aa8eae3c3c910c18.tar.gz
vcxsrv-c9aad1ae6227c434d480d1d3aa8eae3c3c910c18.tar.bz2
vcxsrv-c9aad1ae6227c434d480d1d3aa8eae3c3c910c18.zip
Upgraded to openssl-1.0.2
Diffstat (limited to 'openssl/crypto/pqueue')
-rw-r--r--openssl/crypto/pqueue/pq_test.c53
-rw-r--r--openssl/crypto/pqueue/pqueue.c359
-rw-r--r--openssl/crypto/pqueue/pqueue.h35
3 files changed, 214 insertions, 233 deletions
diff --git a/openssl/crypto/pqueue/pq_test.c b/openssl/crypto/pqueue/pq_test.c
index 8d496dfc6..479ab2248 100644
--- a/openssl/crypto/pqueue/pq_test.c
+++ b/openssl/crypto/pqueue/pq_test.c
@@ -1,7 +1,7 @@
/* crypto/pqueue/pq_test.c */
-/*
+/*
* DTLS implementation written by Nagendra Modadugu
- * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
+ * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
*/
/* ====================================================================
* Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
@@ -11,7 +11,7 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * 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
@@ -59,37 +59,36 @@
#include "pqueue.h"
-int
-main(void)
- {
- pitem *item;
- pqueue pq;
+int main(void)
+{
+ pitem *item;
+ pqueue pq;
- pq = pqueue_new();
+ pq = pqueue_new();
- item = pitem_new(3, NULL);
- pqueue_insert(pq, item);
+ item = pitem_new(3, NULL);
+ pqueue_insert(pq, item);
- item = pitem_new(1, NULL);
- pqueue_insert(pq, item);
+ item = pitem_new(1, NULL);
+ pqueue_insert(pq, item);
- item = pitem_new(2, NULL);
- pqueue_insert(pq, item);
+ item = pitem_new(2, NULL);
+ pqueue_insert(pq, item);
- item = pqueue_find(pq, 1);
- fprintf(stderr, "found %ld\n", item->priority);
+ item = pqueue_find(pq, 1);
+ fprintf(stderr, "found %ld\n", item->priority);
- item = pqueue_find(pq, 2);
- fprintf(stderr, "found %ld\n", item->priority);
+ item = pqueue_find(pq, 2);
+ fprintf(stderr, "found %ld\n", item->priority);
- item = pqueue_find(pq, 3);
- fprintf(stderr, "found %ld\n", item ? item->priority: 0);
+ item = pqueue_find(pq, 3);
+ fprintf(stderr, "found %ld\n", item ? item->priority : 0);
- pqueue_print(pq);
+ pqueue_print(pq);
- for(item = pqueue_pop(pq); item != NULL; item = pqueue_pop(pq))
- pitem_free(item);
+ for (item = pqueue_pop(pq); item != NULL; item = pqueue_pop(pq))
+ pitem_free(item);
- pqueue_free(pq);
- return 0;
- }
+ pqueue_free(pq);
+ return 0;
+}
diff --git a/openssl/crypto/pqueue/pqueue.c b/openssl/crypto/pqueue/pqueue.c
index eab13a125..75f973493 100644
--- a/openssl/crypto/pqueue/pqueue.c
+++ b/openssl/crypto/pqueue/pqueue.c
@@ -1,7 +1,7 @@
/* crypto/pqueue/pqueue.c */
-/*
+/*
* DTLS implementation written by Nagendra Modadugu
- * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
+ * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
*/
/* ====================================================================
* Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
@@ -11,7 +11,7 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * 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
@@ -61,192 +61,175 @@
#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 *) OPENSSL_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;
-
- OPENSSL_free(item);
- }
-
-pqueue_s *
-pqueue_new()
- {
- pqueue_s *pq = (pqueue_s *) OPENSSL_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;
-
- OPENSSL_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,8);
- 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->next != NULL; next = next->next)
- {
- if ( memcmp(next->priority, prio64be,8) == 0)
- {
- found = next;
- break;
- }
- }
-
- /* check the one last node */
- if ( memcmp(next->priority, prio64be,8) ==0)
- found = next;
-
- if ( ! found)
- return NULL;
-
-#if 0 /* find works in peek mode */
- if ( prev == NULL)
- pq->items = next->next;
- else
- prev->next = next->next;
+typedef struct _pqueue {
+ pitem *items;
+ int count;
+} pqueue_s;
+
+pitem *pitem_new(unsigned char *prio64be, void *data)
+{
+ pitem *item = (pitem *)OPENSSL_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;
+
+ OPENSSL_free(item);
+}
+
+pqueue_s *pqueue_new()
+{
+ pqueue_s *pq = (pqueue_s *)OPENSSL_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;
+
+ OPENSSL_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, 8);
+ 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->next != NULL; next = next->next) {
+ if (memcmp(next->priority, prio64be, 8) == 0) {
+ found = next;
+ break;
+ }
+ }
+
+ /* check the one last node */
+ if (memcmp(next->priority, prio64be, 8) == 0)
+ found = next;
+
+ if (!found)
+ return NULL;
+
+#if 0 /* find works in peek mode */
+ if (prev == NULL)
+ pq->items = next->next;
+ else
+ prev->next = next->next;
#endif
- 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)
+ 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;
+ pitem *item = pq->items;
+ int count = 0;
+
+ while (item != NULL) {
+ count++;
+ item = item->next;
+ }
+ return count;
}
diff --git a/openssl/crypto/pqueue/pqueue.h b/openssl/crypto/pqueue/pqueue.h
index 26b534808..d40d9c7d8 100644
--- a/openssl/crypto/pqueue/pqueue.h
+++ b/openssl/crypto/pqueue/pqueue.h
@@ -1,7 +1,7 @@
/* crypto/pqueue/pqueue.h */
-/*
+/*
* DTLS implementation written by Nagendra Modadugu
- * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
+ * (nagendra@cs.stanford.edu) for the OpenSSL project 2005.
*/
/* ====================================================================
* Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved.
@@ -11,7 +11,7 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * 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
@@ -58,31 +58,30 @@
*/
#ifndef HEADER_PQUEUE_H
-#define HEADER_PQUEUE_H
+# define HEADER_PQUEUE_H
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
#ifdef __cplusplus
extern "C" {
#endif
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 {
+ 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);
+void pitem_free(pitem *item);
pqueue pqueue_new(void);
-void pqueue_free(pqueue pq);
+void pqueue_free(pqueue pq);
pitem *pqueue_insert(pqueue pq, pitem *item);
pitem *pqueue_peek(pqueue pq);
@@ -91,10 +90,10 @@ 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);
+void pqueue_print(pqueue pq);
+int pqueue_size(pqueue pq);
#ifdef __cplusplus
}
#endif
-#endif /* ! HEADER_PQUEUE_H */
+#endif /* ! HEADER_PQUEUE_H */