
commit 715fdfcb7b44ae6fdad886e688708ec0d483a1f8 Author: Nick Mathewson <nickm@torproject.org> Date: Sat Jan 10 20:14:55 2015 -0500 document rewrite_result_t and export for testing --- src/or/connection_edge.c | 19 ++++--------------- src/or/connection_edge.h | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index c1215f7..56e496f 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 e6adad9..af564ce 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