diff options
author | Andy Polyakov <appro@openssl.org> | 2006-10-20 11:26:00 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2006-10-20 11:26:00 +0000 |
commit | a4d64c7f49d76d659b6ad482c4f788fc7274f651 (patch) | |
tree | 5ab6d7077b0882a5e8c8a59c2e7f6c08b67a0e4c /ssl/s3_both.c | |
parent | 1e7b6c029c829f010997c2bca59b40ccebb192a7 (diff) |
Align data payload for better performance.
Diffstat (limited to 'ssl/s3_both.c')
-rw-r--r-- | ssl/s3_both.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/ssl/s3_both.c b/ssl/s3_both.c index 09d72e545d..aaf1c2f625 100644 --- a/ssl/s3_both.c +++ b/ssl/s3_both.c @@ -589,13 +589,17 @@ int ssl_verify_alarm_type(long type) int ssl3_setup_buffers(SSL *s) { unsigned char *p; - size_t len; + size_t len,align=0; + +#if defined(SSL3_ALIGN_PAYLOAD) && SSL3_ALIGN_PAYLOAD!=0 + align = (-SSL3_RT_HEADER_LENGTH)&(SSL3_ALIGN_PAYLOAD-1); +#endif if (s->s3->rbuf.buf == NULL) { len = SSL3_RT_MAX_PLAIN_LENGTH + SSL3_RT_MAX_ENCRYPTED_OVERHEAD - + SSL3_RT_HEADER_LENGTH; + + SSL3_RT_HEADER_LENGTH + align; if (s->options & SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER) { s->s3->init_extra = 1; @@ -615,13 +619,13 @@ int ssl3_setup_buffers(SSL *s) { len = s->max_send_fragment + SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD - + SSL3_RT_HEADER_LENGTH; + + SSL3_RT_HEADER_LENGTH + align; #ifndef OPENSSL_NO_COMP if (!(s->options & SSL_OP_NO_COMPRESSION)) len += SSL3_RT_MAX_COMPRESSED_OVERHEAD; #endif if (!(s->options & SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)) - len += SSL3_RT_HEADER_LENGTH + len += SSL3_RT_HEADER_LENGTH + align + SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD; if ((p=OPENSSL_malloc(len)) == NULL) goto err; |