diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/pqueue/pq_test.c | 12 | ||||
-rw-r--r-- | src/lib/libcrypto/pqueue/pqueue.c | 137 | ||||
-rw-r--r-- | src/lib/libcrypto/pqueue/pqueue.h | 11 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/pqueue/pq_test.c | 12 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/pqueue/pqueue.c | 137 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/pqueue/pqueue.h | 11 |
6 files changed, 154 insertions, 166 deletions
diff --git a/src/lib/libcrypto/pqueue/pq_test.c b/src/lib/libcrypto/pqueue/pq_test.c index 8d496dfc65..4cd785500c 100644 --- a/src/lib/libcrypto/pqueue/pq_test.c +++ b/src/lib/libcrypto/pqueue/pq_test.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* crypto/pqueue/pq_test.c */ | 1 | /* crypto/pqueue/pq_test.c */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
5 | */ | 5 | */ |
6 | /* ==================================================================== | 6 | /* ==================================================================== |
7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. | 7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. |
@@ -11,7 +11,7 @@ | |||
11 | * are met: | 11 | * are met: |
12 | * | 12 | * |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. |
15 | * | 15 | * |
16 | * 2. Redistributions in binary form must reproduce the above copyright | 16 | * 2. Redistributions in binary form must reproduce the above copyright |
17 | * notice, this list of conditions and the following disclaimer in | 17 | * notice, this list of conditions and the following disclaimer in |
@@ -61,7 +61,7 @@ | |||
61 | 61 | ||
62 | int | 62 | int |
63 | main(void) | 63 | main(void) |
64 | { | 64 | { |
65 | pitem *item; | 65 | pitem *item; |
66 | pqueue pq; | 66 | pqueue pq; |
67 | 67 | ||
@@ -87,9 +87,9 @@ main(void) | |||
87 | 87 | ||
88 | pqueue_print(pq); | 88 | pqueue_print(pq); |
89 | 89 | ||
90 | for(item = pqueue_pop(pq); item != NULL; item = pqueue_pop(pq)) | 90 | for (item = pqueue_pop(pq); item != NULL; item = pqueue_pop(pq)) |
91 | pitem_free(item); | 91 | pitem_free(item); |
92 | 92 | ||
93 | pqueue_free(pq); | 93 | pqueue_free(pq); |
94 | return 0; | 94 | return 0; |
95 | } | 95 | } |
diff --git a/src/lib/libcrypto/pqueue/pqueue.c b/src/lib/libcrypto/pqueue/pqueue.c index 3ca8e049e4..5cea75311e 100644 --- a/src/lib/libcrypto/pqueue/pqueue.c +++ b/src/lib/libcrypto/pqueue/pqueue.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* crypto/pqueue/pqueue.c */ | 1 | /* crypto/pqueue/pqueue.c */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
5 | */ | 5 | */ |
6 | /* ==================================================================== | 6 | /* ==================================================================== |
7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. | 7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. |
@@ -11,7 +11,7 @@ | |||
11 | * are met: | 11 | * are met: |
12 | * | 12 | * |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. |
15 | * | 15 | * |
16 | * 2. Redistributions in binary form must reproduce the above copyright | 16 | * 2. Redistributions in binary form must reproduce the above copyright |
17 | * notice, this list of conditions and the following disclaimer in | 17 | * notice, this list of conditions and the following disclaimer in |
@@ -61,190 +61,185 @@ | |||
61 | #include <openssl/bn.h> | 61 | #include <openssl/bn.h> |
62 | #include "pqueue.h" | 62 | #include "pqueue.h" |
63 | 63 | ||
64 | typedef struct _pqueue | 64 | typedef struct _pqueue { |
65 | { | ||
66 | pitem *items; | 65 | pitem *items; |
67 | int count; | 66 | int count; |
68 | } pqueue_s; | 67 | } pqueue_s; |
69 | 68 | ||
70 | pitem * | 69 | pitem * |
71 | pitem_new(unsigned char *prio64be, void *data) | 70 | pitem_new(unsigned char *prio64be, void *data) |
72 | { | 71 | { |
73 | pitem *item = (pitem *) malloc(sizeof(pitem)); | 72 | pitem *item = (pitem *)malloc(sizeof(pitem)); |
74 | if (item == NULL) return NULL; | 73 | |
74 | if (item == NULL) | ||
75 | return NULL; | ||
75 | 76 | ||
76 | memcpy(item->priority,prio64be,sizeof(item->priority)); | 77 | memcpy(item->priority, prio64be, sizeof(item->priority)); |
77 | 78 | ||
78 | item->data = data; | 79 | item->data = data; |
79 | item->next = NULL; | 80 | item->next = NULL; |
80 | 81 | ||
81 | return item; | 82 | return item; |
82 | } | 83 | } |
83 | 84 | ||
84 | void | 85 | void |
85 | pitem_free(pitem *item) | 86 | pitem_free(pitem *item) |
86 | { | 87 | { |
87 | if (item == NULL) return; | 88 | if (item == NULL) |
89 | return; | ||
88 | 90 | ||
89 | free(item); | 91 | free(item); |
90 | } | 92 | } |
91 | 93 | ||
92 | pqueue_s * | 94 | pqueue_s * |
93 | pqueue_new() | 95 | pqueue_new() |
94 | { | 96 | { |
95 | pqueue_s *pq = (pqueue_s *) malloc(sizeof(pqueue_s)); | 97 | pqueue_s *pq = (pqueue_s *)malloc(sizeof(pqueue_s)); |
96 | if (pq == NULL) return NULL; | 98 | |
99 | if (pq == NULL) | ||
100 | return NULL; | ||
97 | 101 | ||
98 | memset(pq, 0x00, sizeof(pqueue_s)); | 102 | memset(pq, 0x00, sizeof(pqueue_s)); |
99 | return pq; | 103 | return pq; |
100 | } | 104 | } |
101 | 105 | ||
102 | void | 106 | void |
103 | pqueue_free(pqueue_s *pq) | 107 | pqueue_free(pqueue_s *pq) |
104 | { | 108 | { |
105 | if (pq == NULL) return; | 109 | if (pq == NULL) |
110 | return; | ||
106 | 111 | ||
107 | free(pq); | 112 | free(pq); |
108 | } | 113 | } |
109 | 114 | ||
110 | pitem * | 115 | pitem * |
111 | pqueue_insert(pqueue_s *pq, pitem *item) | 116 | pqueue_insert(pqueue_s *pq, pitem *item) |
112 | { | 117 | { |
113 | pitem *curr, *next; | 118 | pitem *curr, *next; |
114 | 119 | ||
115 | if (pq->items == NULL) | 120 | if (pq->items == NULL) { |
116 | { | ||
117 | pq->items = item; | 121 | pq->items = item; |
118 | return item; | 122 | return item; |
119 | } | 123 | } |
120 | 124 | ||
121 | for(curr = NULL, next = pq->items; | 125 | for (curr = NULL, next = pq->items; next != NULL; |
122 | next != NULL; | 126 | curr = next, next = next->next) { |
123 | curr = next, next = next->next) | ||
124 | { | ||
125 | /* we can compare 64-bit value in big-endian encoding | 127 | /* we can compare 64-bit value in big-endian encoding |
126 | * with memcmp:-) */ | 128 | * with memcmp:-) */ |
127 | int cmp = memcmp(next->priority, item->priority,8); | 129 | int cmp = memcmp(next->priority, item->priority, 8); |
128 | if (cmp > 0) /* next > item */ | 130 | if (cmp > 0) /* next > item */ |
129 | { | 131 | { |
130 | item->next = next; | 132 | item->next = next; |
131 | 133 | ||
132 | if (curr == NULL) | 134 | if (curr == NULL) |
133 | pq->items = item; | 135 | pq->items = item; |
134 | else | 136 | else |
135 | curr->next = item; | 137 | curr->next = item; |
136 | 138 | ||
137 | return item; | 139 | return item; |
138 | } | 140 | } else if (cmp == 0) /* duplicates not allowed */ |
139 | |||
140 | else if (cmp == 0) /* duplicates not allowed */ | ||
141 | return NULL; | 141 | return NULL; |
142 | } | 142 | } |
143 | 143 | ||
144 | item->next = NULL; | 144 | item->next = NULL; |
145 | curr->next = item; | 145 | curr->next = item; |
146 | 146 | ||
147 | return item; | 147 | return item; |
148 | } | 148 | } |
149 | 149 | ||
150 | pitem * | 150 | pitem * |
151 | pqueue_peek(pqueue_s *pq) | 151 | pqueue_peek(pqueue_s *pq) |
152 | { | 152 | { |
153 | return pq->items; | 153 | return pq->items; |
154 | } | 154 | } |
155 | 155 | ||
156 | pitem * | 156 | pitem * |
157 | pqueue_pop(pqueue_s *pq) | 157 | pqueue_pop(pqueue_s *pq) |
158 | { | 158 | { |
159 | pitem *item = pq->items; | 159 | pitem *item = pq->items; |
160 | 160 | ||
161 | if (pq->items != NULL) | 161 | if (pq->items != NULL) |
162 | pq->items = pq->items->next; | 162 | pq->items = pq->items->next; |
163 | 163 | ||
164 | return item; | 164 | return item; |
165 | } | 165 | } |
166 | 166 | ||
167 | pitem * | 167 | pitem * |
168 | pqueue_find(pqueue_s *pq, unsigned char *prio64be) | 168 | pqueue_find(pqueue_s *pq, unsigned char *prio64be) |
169 | { | 169 | { |
170 | pitem *next; | 170 | pitem *next; |
171 | pitem *found = NULL; | 171 | pitem *found = NULL; |
172 | 172 | ||
173 | if ( pq->items == NULL) | 173 | if (pq->items == NULL) |
174 | return NULL; | 174 | return NULL; |
175 | 175 | ||
176 | for ( next = pq->items; next->next != NULL; next = next->next) | 176 | for (next = pq->items; next->next != NULL; next = next->next) { |
177 | { | 177 | if (memcmp(next->priority, prio64be, 8) == 0) { |
178 | if ( memcmp(next->priority, prio64be,8) == 0) | ||
179 | { | ||
180 | found = next; | 178 | found = next; |
181 | break; | 179 | break; |
182 | } | ||
183 | } | 180 | } |
184 | 181 | } | |
182 | |||
185 | /* check the one last node */ | 183 | /* check the one last node */ |
186 | if ( memcmp(next->priority, prio64be,8) ==0) | 184 | if (memcmp(next->priority, prio64be, 8) ==0) |
187 | found = next; | 185 | found = next; |
188 | 186 | ||
189 | if ( ! found) | 187 | if (! found) |
190 | return NULL; | 188 | return NULL; |
191 | 189 | ||
192 | #if 0 /* find works in peek mode */ | 190 | #if 0 /* find works in peek mode */ |
193 | if ( prev == NULL) | 191 | if (prev == NULL) |
194 | pq->items = next->next; | 192 | pq->items = next->next; |
195 | else | 193 | else |
196 | prev->next = next->next; | 194 | prev->next = next->next; |
197 | #endif | 195 | #endif |
198 | 196 | ||
199 | return found; | 197 | return found; |
200 | } | 198 | } |
201 | 199 | ||
202 | void | 200 | void |
203 | pqueue_print(pqueue_s *pq) | 201 | pqueue_print(pqueue_s *pq) |
204 | { | 202 | { |
205 | pitem *item = pq->items; | 203 | pitem *item = pq->items; |
206 | 204 | ||
207 | while(item != NULL) | 205 | while (item != NULL) { |
208 | { | ||
209 | printf("item\t%02x%02x%02x%02x%02x%02x%02x%02x\n", | 206 | printf("item\t%02x%02x%02x%02x%02x%02x%02x%02x\n", |
210 | item->priority[0],item->priority[1], | 207 | item->priority[0], item->priority[1], |
211 | item->priority[2],item->priority[3], | 208 | item->priority[2], item->priority[3], |
212 | item->priority[4],item->priority[5], | 209 | item->priority[4], item->priority[5], |
213 | item->priority[6],item->priority[7]); | 210 | item->priority[6], item->priority[7]); |
214 | item = item->next; | 211 | item = item->next; |
215 | } | ||
216 | } | 212 | } |
213 | } | ||
217 | 214 | ||
218 | pitem * | 215 | pitem * |
219 | pqueue_iterator(pqueue_s *pq) | 216 | pqueue_iterator(pqueue_s *pq) |
220 | { | 217 | { |
221 | return pqueue_peek(pq); | 218 | return pqueue_peek(pq); |
222 | } | 219 | } |
223 | 220 | ||
224 | pitem * | 221 | pitem * |
225 | pqueue_next(pitem **item) | 222 | pqueue_next(pitem **item) |
226 | { | 223 | { |
227 | pitem *ret; | 224 | pitem *ret; |
228 | 225 | ||
229 | if ( item == NULL || *item == NULL) | 226 | if (item == NULL || *item == NULL) |
230 | return NULL; | 227 | return NULL; |
231 | 228 | ||
232 | |||
233 | /* *item != NULL */ | 229 | /* *item != NULL */ |
234 | ret = *item; | 230 | ret = *item; |
235 | *item = (*item)->next; | 231 | *item = (*item)->next; |
236 | 232 | ||
237 | return ret; | 233 | return ret; |
238 | } | 234 | } |
239 | 235 | ||
240 | int | 236 | int |
241 | pqueue_size(pqueue_s *pq) | 237 | pqueue_size(pqueue_s *pq) |
242 | { | 238 | { |
243 | pitem *item = pq->items; | 239 | pitem *item = pq->items; |
244 | int count = 0; | 240 | int count = 0; |
245 | 241 | ||
246 | while(item != NULL) | 242 | while (item != NULL) { |
247 | { | ||
248 | count++; | 243 | count++; |
249 | item = item->next; | 244 | item = item->next; |
250 | } | 245 | } |
diff --git a/src/lib/libcrypto/pqueue/pqueue.h b/src/lib/libcrypto/pqueue/pqueue.h index 87fc9037c8..729e9abaf2 100644 --- a/src/lib/libcrypto/pqueue/pqueue.h +++ b/src/lib/libcrypto/pqueue/pqueue.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* crypto/pqueue/pqueue.h */ | 1 | /* crypto/pqueue/pqueue.h */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
5 | */ | 5 | */ |
6 | /* ==================================================================== | 6 | /* ==================================================================== |
7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. | 7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. |
@@ -11,7 +11,7 @@ | |||
11 | * are met: | 11 | * are met: |
12 | * | 12 | * |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. |
15 | * | 15 | * |
16 | * 2. Redistributions in binary form must reproduce the above copyright | 16 | * 2. Redistributions in binary form must reproduce the above copyright |
17 | * notice, this list of conditions and the following disclaimer in | 17 | * notice, this list of conditions and the following disclaimer in |
@@ -66,12 +66,11 @@ | |||
66 | 66 | ||
67 | typedef struct _pqueue *pqueue; | 67 | typedef struct _pqueue *pqueue; |
68 | 68 | ||
69 | typedef struct _pitem | 69 | typedef struct _pitem { |
70 | { | ||
71 | unsigned char priority[8]; /* 64-bit value in big-endian encoding */ | 70 | unsigned char priority[8]; /* 64-bit value in big-endian encoding */ |
72 | void *data; | 71 | void *data; |
73 | struct _pitem *next; | 72 | struct _pitem *next; |
74 | } pitem; | 73 | } pitem; |
75 | 74 | ||
76 | typedef struct _pitem *piterator; | 75 | typedef struct _pitem *piterator; |
77 | 76 | ||
diff --git a/src/lib/libssl/src/crypto/pqueue/pq_test.c b/src/lib/libssl/src/crypto/pqueue/pq_test.c index 8d496dfc65..4cd785500c 100644 --- a/src/lib/libssl/src/crypto/pqueue/pq_test.c +++ b/src/lib/libssl/src/crypto/pqueue/pq_test.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* crypto/pqueue/pq_test.c */ | 1 | /* crypto/pqueue/pq_test.c */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
5 | */ | 5 | */ |
6 | /* ==================================================================== | 6 | /* ==================================================================== |
7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. | 7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. |
@@ -11,7 +11,7 @@ | |||
11 | * are met: | 11 | * are met: |
12 | * | 12 | * |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. |
15 | * | 15 | * |
16 | * 2. Redistributions in binary form must reproduce the above copyright | 16 | * 2. Redistributions in binary form must reproduce the above copyright |
17 | * notice, this list of conditions and the following disclaimer in | 17 | * notice, this list of conditions and the following disclaimer in |
@@ -61,7 +61,7 @@ | |||
61 | 61 | ||
62 | int | 62 | int |
63 | main(void) | 63 | main(void) |
64 | { | 64 | { |
65 | pitem *item; | 65 | pitem *item; |
66 | pqueue pq; | 66 | pqueue pq; |
67 | 67 | ||
@@ -87,9 +87,9 @@ main(void) | |||
87 | 87 | ||
88 | pqueue_print(pq); | 88 | pqueue_print(pq); |
89 | 89 | ||
90 | for(item = pqueue_pop(pq); item != NULL; item = pqueue_pop(pq)) | 90 | for (item = pqueue_pop(pq); item != NULL; item = pqueue_pop(pq)) |
91 | pitem_free(item); | 91 | pitem_free(item); |
92 | 92 | ||
93 | pqueue_free(pq); | 93 | pqueue_free(pq); |
94 | return 0; | 94 | return 0; |
95 | } | 95 | } |
diff --git a/src/lib/libssl/src/crypto/pqueue/pqueue.c b/src/lib/libssl/src/crypto/pqueue/pqueue.c index 3ca8e049e4..5cea75311e 100644 --- a/src/lib/libssl/src/crypto/pqueue/pqueue.c +++ b/src/lib/libssl/src/crypto/pqueue/pqueue.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* crypto/pqueue/pqueue.c */ | 1 | /* crypto/pqueue/pqueue.c */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
5 | */ | 5 | */ |
6 | /* ==================================================================== | 6 | /* ==================================================================== |
7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. | 7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. |
@@ -11,7 +11,7 @@ | |||
11 | * are met: | 11 | * are met: |
12 | * | 12 | * |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. |
15 | * | 15 | * |
16 | * 2. Redistributions in binary form must reproduce the above copyright | 16 | * 2. Redistributions in binary form must reproduce the above copyright |
17 | * notice, this list of conditions and the following disclaimer in | 17 | * notice, this list of conditions and the following disclaimer in |
@@ -61,190 +61,185 @@ | |||
61 | #include <openssl/bn.h> | 61 | #include <openssl/bn.h> |
62 | #include "pqueue.h" | 62 | #include "pqueue.h" |
63 | 63 | ||
64 | typedef struct _pqueue | 64 | typedef struct _pqueue { |
65 | { | ||
66 | pitem *items; | 65 | pitem *items; |
67 | int count; | 66 | int count; |
68 | } pqueue_s; | 67 | } pqueue_s; |
69 | 68 | ||
70 | pitem * | 69 | pitem * |
71 | pitem_new(unsigned char *prio64be, void *data) | 70 | pitem_new(unsigned char *prio64be, void *data) |
72 | { | 71 | { |
73 | pitem *item = (pitem *) malloc(sizeof(pitem)); | 72 | pitem *item = (pitem *)malloc(sizeof(pitem)); |
74 | if (item == NULL) return NULL; | 73 | |
74 | if (item == NULL) | ||
75 | return NULL; | ||
75 | 76 | ||
76 | memcpy(item->priority,prio64be,sizeof(item->priority)); | 77 | memcpy(item->priority, prio64be, sizeof(item->priority)); |
77 | 78 | ||
78 | item->data = data; | 79 | item->data = data; |
79 | item->next = NULL; | 80 | item->next = NULL; |
80 | 81 | ||
81 | return item; | 82 | return item; |
82 | } | 83 | } |
83 | 84 | ||
84 | void | 85 | void |
85 | pitem_free(pitem *item) | 86 | pitem_free(pitem *item) |
86 | { | 87 | { |
87 | if (item == NULL) return; | 88 | if (item == NULL) |
89 | return; | ||
88 | 90 | ||
89 | free(item); | 91 | free(item); |
90 | } | 92 | } |
91 | 93 | ||
92 | pqueue_s * | 94 | pqueue_s * |
93 | pqueue_new() | 95 | pqueue_new() |
94 | { | 96 | { |
95 | pqueue_s *pq = (pqueue_s *) malloc(sizeof(pqueue_s)); | 97 | pqueue_s *pq = (pqueue_s *)malloc(sizeof(pqueue_s)); |
96 | if (pq == NULL) return NULL; | 98 | |
99 | if (pq == NULL) | ||
100 | return NULL; | ||
97 | 101 | ||
98 | memset(pq, 0x00, sizeof(pqueue_s)); | 102 | memset(pq, 0x00, sizeof(pqueue_s)); |
99 | return pq; | 103 | return pq; |
100 | } | 104 | } |
101 | 105 | ||
102 | void | 106 | void |
103 | pqueue_free(pqueue_s *pq) | 107 | pqueue_free(pqueue_s *pq) |
104 | { | 108 | { |
105 | if (pq == NULL) return; | 109 | if (pq == NULL) |
110 | return; | ||
106 | 111 | ||
107 | free(pq); | 112 | free(pq); |
108 | } | 113 | } |
109 | 114 | ||
110 | pitem * | 115 | pitem * |
111 | pqueue_insert(pqueue_s *pq, pitem *item) | 116 | pqueue_insert(pqueue_s *pq, pitem *item) |
112 | { | 117 | { |
113 | pitem *curr, *next; | 118 | pitem *curr, *next; |
114 | 119 | ||
115 | if (pq->items == NULL) | 120 | if (pq->items == NULL) { |
116 | { | ||
117 | pq->items = item; | 121 | pq->items = item; |
118 | return item; | 122 | return item; |
119 | } | 123 | } |
120 | 124 | ||
121 | for(curr = NULL, next = pq->items; | 125 | for (curr = NULL, next = pq->items; next != NULL; |
122 | next != NULL; | 126 | curr = next, next = next->next) { |
123 | curr = next, next = next->next) | ||
124 | { | ||
125 | /* we can compare 64-bit value in big-endian encoding | 127 | /* we can compare 64-bit value in big-endian encoding |
126 | * with memcmp:-) */ | 128 | * with memcmp:-) */ |
127 | int cmp = memcmp(next->priority, item->priority,8); | 129 | int cmp = memcmp(next->priority, item->priority, 8); |
128 | if (cmp > 0) /* next > item */ | 130 | if (cmp > 0) /* next > item */ |
129 | { | 131 | { |
130 | item->next = next; | 132 | item->next = next; |
131 | 133 | ||
132 | if (curr == NULL) | 134 | if (curr == NULL) |
133 | pq->items = item; | 135 | pq->items = item; |
134 | else | 136 | else |
135 | curr->next = item; | 137 | curr->next = item; |
136 | 138 | ||
137 | return item; | 139 | return item; |
138 | } | 140 | } else if (cmp == 0) /* duplicates not allowed */ |
139 | |||
140 | else if (cmp == 0) /* duplicates not allowed */ | ||
141 | return NULL; | 141 | return NULL; |
142 | } | 142 | } |
143 | 143 | ||
144 | item->next = NULL; | 144 | item->next = NULL; |
145 | curr->next = item; | 145 | curr->next = item; |
146 | 146 | ||
147 | return item; | 147 | return item; |
148 | } | 148 | } |
149 | 149 | ||
150 | pitem * | 150 | pitem * |
151 | pqueue_peek(pqueue_s *pq) | 151 | pqueue_peek(pqueue_s *pq) |
152 | { | 152 | { |
153 | return pq->items; | 153 | return pq->items; |
154 | } | 154 | } |
155 | 155 | ||
156 | pitem * | 156 | pitem * |
157 | pqueue_pop(pqueue_s *pq) | 157 | pqueue_pop(pqueue_s *pq) |
158 | { | 158 | { |
159 | pitem *item = pq->items; | 159 | pitem *item = pq->items; |
160 | 160 | ||
161 | if (pq->items != NULL) | 161 | if (pq->items != NULL) |
162 | pq->items = pq->items->next; | 162 | pq->items = pq->items->next; |
163 | 163 | ||
164 | return item; | 164 | return item; |
165 | } | 165 | } |
166 | 166 | ||
167 | pitem * | 167 | pitem * |
168 | pqueue_find(pqueue_s *pq, unsigned char *prio64be) | 168 | pqueue_find(pqueue_s *pq, unsigned char *prio64be) |
169 | { | 169 | { |
170 | pitem *next; | 170 | pitem *next; |
171 | pitem *found = NULL; | 171 | pitem *found = NULL; |
172 | 172 | ||
173 | if ( pq->items == NULL) | 173 | if (pq->items == NULL) |
174 | return NULL; | 174 | return NULL; |
175 | 175 | ||
176 | for ( next = pq->items; next->next != NULL; next = next->next) | 176 | for (next = pq->items; next->next != NULL; next = next->next) { |
177 | { | 177 | if (memcmp(next->priority, prio64be, 8) == 0) { |
178 | if ( memcmp(next->priority, prio64be,8) == 0) | ||
179 | { | ||
180 | found = next; | 178 | found = next; |
181 | break; | 179 | break; |
182 | } | ||
183 | } | 180 | } |
184 | 181 | } | |
182 | |||
185 | /* check the one last node */ | 183 | /* check the one last node */ |
186 | if ( memcmp(next->priority, prio64be,8) ==0) | 184 | if (memcmp(next->priority, prio64be, 8) ==0) |
187 | found = next; | 185 | found = next; |
188 | 186 | ||
189 | if ( ! found) | 187 | if (! found) |
190 | return NULL; | 188 | return NULL; |
191 | 189 | ||
192 | #if 0 /* find works in peek mode */ | 190 | #if 0 /* find works in peek mode */ |
193 | if ( prev == NULL) | 191 | if (prev == NULL) |
194 | pq->items = next->next; | 192 | pq->items = next->next; |
195 | else | 193 | else |
196 | prev->next = next->next; | 194 | prev->next = next->next; |
197 | #endif | 195 | #endif |
198 | 196 | ||
199 | return found; | 197 | return found; |
200 | } | 198 | } |
201 | 199 | ||
202 | void | 200 | void |
203 | pqueue_print(pqueue_s *pq) | 201 | pqueue_print(pqueue_s *pq) |
204 | { | 202 | { |
205 | pitem *item = pq->items; | 203 | pitem *item = pq->items; |
206 | 204 | ||
207 | while(item != NULL) | 205 | while (item != NULL) { |
208 | { | ||
209 | printf("item\t%02x%02x%02x%02x%02x%02x%02x%02x\n", | 206 | printf("item\t%02x%02x%02x%02x%02x%02x%02x%02x\n", |
210 | item->priority[0],item->priority[1], | 207 | item->priority[0], item->priority[1], |
211 | item->priority[2],item->priority[3], | 208 | item->priority[2], item->priority[3], |
212 | item->priority[4],item->priority[5], | 209 | item->priority[4], item->priority[5], |
213 | item->priority[6],item->priority[7]); | 210 | item->priority[6], item->priority[7]); |
214 | item = item->next; | 211 | item = item->next; |
215 | } | ||
216 | } | 212 | } |
213 | } | ||
217 | 214 | ||
218 | pitem * | 215 | pitem * |
219 | pqueue_iterator(pqueue_s *pq) | 216 | pqueue_iterator(pqueue_s *pq) |
220 | { | 217 | { |
221 | return pqueue_peek(pq); | 218 | return pqueue_peek(pq); |
222 | } | 219 | } |
223 | 220 | ||
224 | pitem * | 221 | pitem * |
225 | pqueue_next(pitem **item) | 222 | pqueue_next(pitem **item) |
226 | { | 223 | { |
227 | pitem *ret; | 224 | pitem *ret; |
228 | 225 | ||
229 | if ( item == NULL || *item == NULL) | 226 | if (item == NULL || *item == NULL) |
230 | return NULL; | 227 | return NULL; |
231 | 228 | ||
232 | |||
233 | /* *item != NULL */ | 229 | /* *item != NULL */ |
234 | ret = *item; | 230 | ret = *item; |
235 | *item = (*item)->next; | 231 | *item = (*item)->next; |
236 | 232 | ||
237 | return ret; | 233 | return ret; |
238 | } | 234 | } |
239 | 235 | ||
240 | int | 236 | int |
241 | pqueue_size(pqueue_s *pq) | 237 | pqueue_size(pqueue_s *pq) |
242 | { | 238 | { |
243 | pitem *item = pq->items; | 239 | pitem *item = pq->items; |
244 | int count = 0; | 240 | int count = 0; |
245 | 241 | ||
246 | while(item != NULL) | 242 | while (item != NULL) { |
247 | { | ||
248 | count++; | 243 | count++; |
249 | item = item->next; | 244 | item = item->next; |
250 | } | 245 | } |
diff --git a/src/lib/libssl/src/crypto/pqueue/pqueue.h b/src/lib/libssl/src/crypto/pqueue/pqueue.h index 87fc9037c8..729e9abaf2 100644 --- a/src/lib/libssl/src/crypto/pqueue/pqueue.h +++ b/src/lib/libssl/src/crypto/pqueue/pqueue.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /* crypto/pqueue/pqueue.h */ | 1 | /* crypto/pqueue/pqueue.h */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
5 | */ | 5 | */ |
6 | /* ==================================================================== | 6 | /* ==================================================================== |
7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. | 7 | * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. |
@@ -11,7 +11,7 @@ | |||
11 | * are met: | 11 | * are met: |
12 | * | 12 | * |
13 | * 1. Redistributions of source code must retain the above copyright | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | 14 | * notice, this list of conditions and the following disclaimer. |
15 | * | 15 | * |
16 | * 2. Redistributions in binary form must reproduce the above copyright | 16 | * 2. Redistributions in binary form must reproduce the above copyright |
17 | * notice, this list of conditions and the following disclaimer in | 17 | * notice, this list of conditions and the following disclaimer in |
@@ -66,12 +66,11 @@ | |||
66 | 66 | ||
67 | typedef struct _pqueue *pqueue; | 67 | typedef struct _pqueue *pqueue; |
68 | 68 | ||
69 | typedef struct _pitem | 69 | typedef struct _pitem { |
70 | { | ||
71 | unsigned char priority[8]; /* 64-bit value in big-endian encoding */ | 70 | unsigned char priority[8]; /* 64-bit value in big-endian encoding */ |
72 | void *data; | 71 | void *data; |
73 | struct _pitem *next; | 72 | struct _pitem *next; |
74 | } pitem; | 73 | } pitem; |
75 | 74 | ||
76 | typedef struct _pitem *piterator; | 75 | typedef struct _pitem *piterator; |
77 | 76 | ||