aboutsummaryrefslogtreecommitdiff
path: root/src/common/tortls.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/tortls.c')
-rw-r--r--src/common/tortls.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c
index d9f1d875d..bd6840af7 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -1710,12 +1710,16 @@ tor_tls_init_bufferevent(tor_tls_t *tls, struct bufferevent *bufev_in,
bufferevent_free(bufev_in);
}
tls->state = TOR_TLS_ST_BUFFEREVENT;
+
+ /* Current versions (as of 2.0.7-rc) of Libevent need to defer
+ * bufferevent_openssl callbacks, or else our callback functions will
+ * get called reentrantly, which is bad for us.
+ */
out = bufferevent_openssl_socket_new(tor_libevent_get_base(),
socket,
tls->ssl,
state,
- 0);
- //BEV_OPT_DEFER_CALLBACKS);
+ BEV_OPT_DEFER_CALLBACKS);
#endif
return out;
}