diff options
author | Richard Levitte <levitte@openssl.org> | 2005-05-30 22:34:28 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2005-05-30 22:34:28 +0000 |
commit | e2ac4732cd4f0efc3dff3261d19aed0ced2c4dde (patch) | |
tree | 8fdcd150176cbbd3f5b16d9e731b561300c31030 /ssl/d1_lib.c | |
parent | e8f665b495ab460341f9aeb7c7962b277d9adc2a (diff) |
pqueue and dtls uses 64-bit values. Unfortunately, OpenSSL doesn't
have a uniform representation for those over all architectures, so a
little bit of hackery is needed.
Contributed by nagendra modadugu <nagendra@cs.stanford.edu>
Diffstat (limited to 'ssl/d1_lib.c')
-rw-r--r-- | ssl/d1_lib.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/ssl/d1_lib.c b/ssl/d1_lib.c index d774521aaf..458ce544d1 100644 --- a/ssl/d1_lib.c +++ b/ssl/d1_lib.c @@ -132,10 +132,20 @@ int dtls1_new(SSL *s) memset(d1,0, sizeof *d1); /* d1->handshake_epoch=0; */ +#if defined(OPENSSL_SYS_VMS) || defined(VMS_TEST) + d1->bitmap.length=64; +#else d1->bitmap.length=sizeof(d1->bitmap.map) * 8; +#endif + pq_64bit_init(&(d1->bitmap.map)); + pq_64bit_init(&(d1->bitmap.max_seq_num)); + + pq_64bit_init(&(d1->next_bitmap.map)); + pq_64bit_init(&(d1->next_bitmap.max_seq_num)); + d1->unprocessed_rcds.q=pqueue_new(); - d1->processed_rcds.q=pqueue_new(); - d1->buffered_messages = pqueue_new(); + d1->processed_rcds.q=pqueue_new(); + d1->buffered_messages = pqueue_new(); d1->sent_messages=pqueue_new(); if ( s->server) @@ -198,6 +208,12 @@ void dtls1_free(SSL *s) } pqueue_free(s->d1->sent_messages); + pq_64bit_free(&(s->d1->bitmap.map)); + pq_64bit_free(&(s->d1->bitmap.max_seq_num)); + + pq_64bit_free(&(s->d1->next_bitmap.map)); + pq_64bit_free(&(s->d1->next_bitmap.max_seq_num)); + OPENSSL_free(s->d1); } |