diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-05-13 12:12:53 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-05-13 12:12:53 -0400 |
commit | d55db221e8ed993fa5cf4dd7bdaca62b1610d982 (patch) | |
tree | 210dd980c98fd2f5ae44adddfede23aefbbf6ebf | |
parent | 34451c7a453564f16194cf060444785fea2f971e (diff) | |
download | tor-d55db221e8ed993fa5cf4dd7bdaca62b1610d982.tar.gz tor-d55db221e8ed993fa5cf4dd7bdaca62b1610d982.zip |
tor_tls_get_buffer_sizes() will not work on openssl 1.1. Patch from yawning
-rw-r--r-- | src/common/tortls.c | 17 | ||||
-rw-r--r-- | src/common/tortls.h | 2 | ||||
-rw-r--r-- | src/or/main.c | 13 |
3 files changed, 23 insertions, 9 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c index edb744f33c..97352c0247 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -2875,12 +2875,23 @@ tor_tls_get_tlssecrets(tor_tls_t *tls, uint8_t *secrets_out) * Set *<b>rbuf_capacity</b> to the amount of storage allocated for the read * buffer and *<b>rbuf_bytes</b> to the amount actually used. * Set *<b>wbuf_capacity</b> to the amount of storage allocated for the write - * buffer and *<b>wbuf_bytes</b> to the amount actually used. */ -void + * buffer and *<b>wbuf_bytes</b> to the amount actually used. + * + * Return 0 on success, -1 on failure.*/ +int tor_tls_get_buffer_sizes(tor_tls_t *tls, size_t *rbuf_capacity, size_t *rbuf_bytes, size_t *wbuf_capacity, size_t *wbuf_bytes) { +#if OPENSSL_VERSION_NUMBER >= OPENSSL_V_SERIES(1,1,0) + (void)tls; + (void)rbuf_capacity; + (void)rbuf_bytes; + (void)wbuf_capacity; + (void)wbuf_bytes; + + return -1; +#else if (tls->ssl->s3->rbuf.buf) *rbuf_capacity = tls->ssl->s3->rbuf.len; else @@ -2891,6 +2902,8 @@ tor_tls_get_buffer_sizes(tor_tls_t *tls, *wbuf_capacity = 0; *rbuf_bytes = tls->ssl->s3->rbuf.left; *wbuf_bytes = tls->ssl->s3->wbuf.left; + return 0; +#endif } #ifdef USE_BUFFEREVENTS diff --git a/src/common/tortls.h b/src/common/tortls.h index f8c6d5913b..5e1606f42d 100644 --- a/src/common/tortls.h +++ b/src/common/tortls.h @@ -92,7 +92,7 @@ size_t tor_tls_get_forced_write_size(tor_tls_t *tls); void tor_tls_get_n_raw_bytes(tor_tls_t *tls, size_t *n_read, size_t *n_written); -void tor_tls_get_buffer_sizes(tor_tls_t *tls, +int tor_tls_get_buffer_sizes(tor_tls_t *tls, size_t *rbuf_capacity, size_t *rbuf_bytes, size_t *wbuf_capacity, size_t *wbuf_bytes); diff --git a/src/or/main.c b/src/or/main.c index d0fe8cbc00..651291b57b 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -2315,12 +2315,13 @@ dumpstats(int severity) if (conn->type == CONN_TYPE_OR) { or_connection_t *or_conn = TO_OR_CONN(conn); if (or_conn->tls) { - tor_tls_get_buffer_sizes(or_conn->tls, &rbuf_cap, &rbuf_len, - &wbuf_cap, &wbuf_len); - tor_log(severity, LD_GENERAL, - "Conn %d: %d/%d bytes used on OpenSSL read buffer; " - "%d/%d bytes used on write buffer.", - i, (int)rbuf_len, (int)rbuf_cap, (int)wbuf_len, (int)wbuf_cap); + if (tor_tls_get_buffer_sizes(or_conn->tls, &rbuf_cap, &rbuf_len, + &wbuf_cap, &wbuf_len) == 0) { + tor_log(severity, LD_GENERAL, + "Conn %d: %d/%d bytes used on OpenSSL read buffer; " + "%d/%d bytes used on write buffer.", + i, (int)rbuf_len, (int)rbuf_cap, (int)wbuf_len, (int)wbuf_cap); + } } } } |