summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--src/common/tortls.c11
-rw-r--r--src/common/tortls.h4
-rw-r--r--src/or/main.c12
4 files changed, 29 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0d34bcf386..e14dfd11a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -60,6 +60,7 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
descriptors we need to keep around when we're cleaning out old
router descriptors. This speeds up the computation significantly, and
may reduce fragmentation.
+ - Make dumpstats() log the fullness and size of openssl-internal buffers.
o Code simplifications and refactoring:
- Refactor code using connection_ap_handshake_attach_circuit() to
@@ -68,6 +69,7 @@ Changes in version 0.2.1.1-alpha - 2008-??-??
- Add a macro to implement the common pattern of iterating through
two parallel lists in lockstep.
+
Changes in version 0.2.0.23-rc - 2008-03-24
o Major bugfixes:
- When a tunneled directory request is made to a directory server
diff --git a/src/common/tortls.c b/src/common/tortls.c
index 07cf17bc17..33666166b5 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -1346,3 +1346,14 @@ tor_tls_used_v1_handshake(tor_tls_t *tls)
return 1;
}
+/** DOCDOC */
+void
+tor_tls_get_buffer_sizes(tor_tls_t *tls,
+ int *rbuf_capacity, int *rbuf_bytes,
+ int *wbuf_capacity, int *wbuf_bytes)
+{
+ *rbuf_capacity = tls->ssl->s3->rbuf.len;
+ *wbuf_capacity = tls->ssl->s3->wbuf.len;
+ *rbuf_bytes = tls->ssl->s3->rbuf.left;
+ *wbuf_bytes = tls->ssl->s3->wbuf.left;
+}
diff --git a/src/common/tortls.h b/src/common/tortls.h
index 52c8350fec..211c8255ba 100644
--- a/src/common/tortls.h
+++ b/src/common/tortls.h
@@ -73,6 +73,10 @@ 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 *rbuf_capacity, int *rbuf_bytes,
+ int *wbuf_capacity, int *wbuf_bytes);
+
int tor_tls_used_v1_handshake(tor_tls_t *tls);
/* Log and abort if there are unhandled TLS errors in OpenSSL's error stack.
diff --git a/src/or/main.c b/src/or/main.c
index 36c87df8de..55803ae15c 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -1611,6 +1611,7 @@ dumpstats(int severity)
{
time_t now = time(NULL);
time_t elapsed;
+ int rbuf_cap, wbuf_cap, rbuf_len, wbuf_len;
log(severity, LD_GENERAL, "Dumping stats:");
@@ -1638,6 +1639,17 @@ dumpstats(int severity)
(int)buf_datalen(conn->outbuf),
(int)buf_allocation(conn->outbuf),
(int)(now - conn->timestamp_lastwritten));
+ 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);
+ log(severity, LD_GENERAL,
+ "Conn %d: %d/%d bytes used on openssl read buffer; "
+ "%d/%d bytes used on write buffer.",
+ i, rbuf_len, rbuf_cap, wbuf_len, wbuf_cap);
+ }
+ }
}
circuit_dump_by_conn(conn, severity); /* dump info about all the circuits
* using this conn */