summaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-01-10 17:48:36 +0000
committerNick Mathewson <nickm@torproject.org>2008-01-10 17:48:36 +0000
commit29b0f51a7387608dd79ff29ffc3f37b7c8543341 (patch)
tree12f73c2fde1a8f531041fb927cd8032dc4219b1b /src/or
parent59fdab43cd21ccee2d8712111dc8ba81c7791150 (diff)
downloadtor-29b0f51a7387608dd79ff29ffc3f37b7c8543341.tar.gz
tor-29b0f51a7387608dd79ff29ffc3f37b7c8543341.zip
r17553@catbus: nickm | 2008-01-10 12:18:27 -0500
Add connection_dir_is_encrypted() so that we can refrain from sending bridge descriptors over an unencrypted link. svn:r13093
Diffstat (limited to 'src/or')
-rw-r--r--src/or/directory.c13
-rw-r--r--src/or/or.h1
2 files changed, 14 insertions, 0 deletions
diff --git a/src/or/directory.c b/src/or/directory.c
index fbe8bdaaf3..19b401f6c2 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -718,6 +718,19 @@ directory_initiate_command(const char *address, uint32_t addr,
}
}
+/** Return true iff anything we say on <b>conn</b> is being encrypted before
+ * we send it to the client/server. */
+int
+connection_dir_is_encrypted(dir_connection_t *conn)
+{
+ /* Right now it's sufficient to see if conn is or has been linked, since
+ * the only thing it could be linked to is an edge connection on a
+ * circuit, and the only way it could have been unlinked is at the edge
+ * connection getting closed.
+ */
+ return TO_CONN(conn)->linked;
+}
+
/** Queue an appropriate HTTP command on conn-\>outbuf. The other args
* are as in directory_initiate_command.
*/
diff --git a/src/or/or.h b/src/or/or.h
index 2342fea3d6..33c50c73bb 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -3018,6 +3018,7 @@ void directory_initiate_command_routerstatus(routerstatus_t *status,
int parse_http_response(const char *headers, int *code, time_t *date,
compress_method_t *compression, char **response);
+int connection_dir_is_encrypted(dir_connection_t *conn);
int connection_dir_reached_eof(dir_connection_t *conn);
int connection_dir_process_inbuf(dir_connection_t *conn);
int connection_dir_finished_flushing(dir_connection_t *conn);