diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-08-23 11:39:34 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2010-09-27 12:31:14 -0400 |
commit | c74a4ab515990701800755b88c097f8239cc3811 (patch) | |
tree | d512d36f2430cf99f62b141823aa559903e2cc2e /src | |
parent | bd3612cd2b4c49fd9f9aec68b6268973e43f2b63 (diff) | |
download | tor-c74a4ab515990701800755b88c097f8239cc3811.tar tor-c74a4ab515990701800755b88c097f8239cc3811.tar.gz |
Documentation for a few bufferevent functions.
Diffstat (limited to 'src')
-rw-r--r-- | src/common/tortls.c | 26 | ||||
-rw-r--r-- | src/or/connection.c | 14 |
2 files changed, 34 insertions, 6 deletions
diff --git a/src/common/tortls.c b/src/common/tortls.c index 47f6adb9c..06533ca43 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) diff --git a/src/or/connection.c b/src/or/connection.c index b39763055..43f6c47ad 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -2633,6 +2633,9 @@ connection_read_to_buf(connection_t *conn, int *max_to_read, int *socket_error) #ifdef USE_BUFFEREVENTS /* XXXX These generic versions could be simplified by making them type-specific */ + +/** Callback: Invoked whenever bytes are added to or drained from an input + * evbuffer. Used to track the number of bytes read. */ static void evbuffer_inbuf_callback(struct evbuffer *buf, const struct evbuffer_cb_info *info, void *arg) @@ -2653,7 +2656,8 @@ evbuffer_inbuf_callback(struct evbuffer *buf, } } -/** DOCDOC */ +/** Callback: Invoked whenever bytes are added to or drained from an output + * evbuffer. Used to track the number of bytes written. */ static void evbuffer_outbuf_callback(struct evbuffer *buf, const struct evbuffer_cb_info *info, void *arg) @@ -2673,7 +2677,7 @@ evbuffer_outbuf_callback(struct evbuffer *buf, } } -/** DOCDOC */ +/** Callback: invoked whenever a bufferevent has read data. */ void connection_handle_read_cb(struct bufferevent *bufev, void *arg) { @@ -2684,7 +2688,7 @@ connection_handle_read_cb(struct bufferevent *bufev, void *arg) connection_mark_for_close(conn); } -/** DOCDOC */ +/** Callback: invoked whenever a bufferevent has written data. */ void connection_handle_write_cb(struct bufferevent *bufev, void *arg) { @@ -2708,7 +2712,8 @@ connection_handle_write_cb(struct bufferevent *bufev, void *arg) } } -/** DOCDOC */ +/** Callback: invoked whenever a bufferevent has had an event (like a + * connection, or an eof, or an error) occur. */ void connection_handle_event_cb(struct bufferevent *bufev, short event, void *arg) { @@ -2746,6 +2751,7 @@ connection_handle_event_cb(struct bufferevent *bufev, short event, void *arg) } } +/** Set up the generic callbacks for the bufferevent on <b>conn</b>. */ void connection_configure_bufferevent_callbacks(connection_t *conn) { |