summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-01-10 20:14:55 -0500
committerNick Mathewson <nickm@torproject.org>2015-01-10 20:16:00 -0500
commit715fdfcb7b44ae6fdad886e688708ec0d483a1f8 (patch)
tree8d6b3b3efcac17280fb787a171ff1f7fa5d55518
parentcd6a57e3d560c023de849ba3cd70b4625a85a3f2 (diff)
downloadtor-715fdfcb7b44ae6fdad886e688708ec0d483a1f8.tar.gz
tor-715fdfcb7b44ae6fdad886e688708ec0d483a1f8.zip
document rewrite_result_t and export for testing
-rw-r--r--src/or/connection_edge.c19
-rw-r--r--src/or/connection_edge.h24
2 files changed, 28 insertions, 15 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index c1215f7101..56e496f670 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -908,21 +908,10 @@ connection_ap_rewrite_and_attach_if_allowed(entry_connection_t *conn,
return connection_ap_handshake_rewrite_and_attach(conn, circ, cpath);
}
-typedef struct {
- char orig_address[MAX_SOCKS_ADDR_LEN];
- /* We set this to true if this is an address we should automatically
- * remap to a local address in VirtualAddrNetwork */
- int automap;
- addressmap_entry_source_t exit_source;
- time_t map_expires;
-
- int end_reason;
- int should_close;
-} rewrite_result_t;
-
-/* DOCDOC
-*/
-static void
+/* Try to perform any map-based rewriting of the target address in <b>conn</b>,
+ * filling in the fields of <b>out</b> as we go.
+ */
+STATIC void
connection_ap_handshake_rewrite(entry_connection_t *conn,
rewrite_result_t *out)
{
diff --git a/src/or/connection_edge.h b/src/or/connection_edge.h
index e6adad91d8..af564cec0c 100644
--- a/src/or/connection_edge.h
+++ b/src/or/connection_edge.h
@@ -143,6 +143,30 @@ STATIC int begin_cell_parse(const cell_t *cell, begin_cell_t *bcell,
STATIC int connected_cell_format_payload(uint8_t *payload_out,
const tor_addr_t *addr,
uint32_t ttl);
+
+
+typedef struct {
+ /** Original address, after we lowercased it but before we started
+ * mapping it.
+ */
+ char orig_address[MAX_SOCKS_ADDR_LEN];
+ /** True iff the address has been automatically remapped to a local
+ * address in VirtualAddrNetwork */
+ int automap;
+ /** If this connection has a .exit address, who put it there? */
+ addressmap_entry_source_t exit_source;
+ /** If we've rewritten the address, when does this map expire? */
+ time_t map_expires;
+ /** If we should close the connection, this is the end_reason to pass
+ * to connection_mark_unattached_ap */
+ int end_reason;
+ /** True iff we should close the connection, either because of error or
+ * because of successful early RESOLVED reply. */
+ int should_close;
+} rewrite_result_t;
+
+STATIC void connection_ap_handshake_rewrite(entry_connection_t *conn,
+ rewrite_result_t *out);
#endif
#endif