aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-08-23 11:39:34 -0400
committerNick Mathewson <nickm@torproject.org>2010-09-27 12:31:14 -0400
commitc74a4ab515990701800755b88c097f8239cc3811 (patch)
treed512d36f2430cf99f62b141823aa559903e2cc2e /src/common
parentbd3612cd2b4c49fd9f9aec68b6268973e43f2b63 (diff)
downloadtor-c74a4ab515990701800755b88c097f8239cc3811.tar.gz
tor-c74a4ab515990701800755b88c097f8239cc3811.zip
Documentation for a few bufferevent functions.
Diffstat (limited to 'src/common')
-rw-r--r--src/common/tortls.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c
index 47f6adb9c5..06533ca43b 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -1205,6 +1205,14 @@ tor_tls_handshake(tor_tls_t *tls)
return r;
}
+/** Perform the final part of the intial TLS handshake on <b>tls</b>. This
+ * should be called for the first handshake only: it determiens whether the v1
+ * or the v2 handshake was used, and adjusts things for the renegotiation
+ * handshake as appropriate.
+ *
+ * tor_tls_handshake() calls this on its own; you only need to call this if
+ * bufferevent is doing the handshake for you.
+ */
int
tor_tls_finish_handshake(tor_tls_t *tls)
{
@@ -1258,7 +1266,8 @@ tor_tls_finish_handshake(tor_tls_t *tls)
}
#ifdef USE_BUFFEREVENTS
-/** DOCDOC */
+/** Put <b>tls</b>, which must be a client connection, into renegotiation
+ * mode. */
int
tor_tls_start_renegotiating(tor_tls_t *tls)
{
@@ -1660,7 +1669,20 @@ tor_tls_get_buffer_sizes(tor_tls_t *tls,
}
#ifdef USE_BUFFEREVENTS
-/** DOCDOC may free bufev_in */
+/** Construct and return an TLS-encrypting bufferevent to send data over
+ * <b>socket</b>, which must match the socket of the underlying bufferevent
+ * <b>bufev_in</b>. The TLS object <b>tls</b> is used for encryption.
+ *
+ * This function will either create a filtering bufferevent that wraps around
+ * <b>bufev_in</b>, or it will free bufev_in and return a new bufferevent that
+ * uses the <b>tls</b> to talk to the network directly. Do not use
+ * <b>bufev_in</b> after calling this function.
+ *
+ * The connection will start out doing a server handshake if <b>receiving</b>
+ * is strue, and a client handshake otherwise.
+ *
+ * Returns NULL on failure.
+ */
struct bufferevent *
tor_tls_init_bufferevent(tor_tls_t *tls, struct bufferevent *bufev_in,
evutil_socket_t socket, int receiving)