aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2021-02-08 10:31:30 -0500
committerNick Mathewson <nickm@torproject.org>2021-02-08 10:31:30 -0500
commit90add50550f2e101de5383e926d1f2729d8987ce (patch)
tree285b6adbd529e3851dc47d3a4e3fe63a474786bf /src/core
parent177b535e7295161db3ac62641173331310ab2ea5 (diff)
parentd159bdb0f498167c2f9ea0004a56bf6f64f2c9ff (diff)
downloadtor-90add50550f2e101de5383e926d1f2729d8987ce.tar.gz
tor-90add50550f2e101de5383e926d1f2729d8987ce.zip
Merge branch 'bug40249_squashed'
Diffstat (limited to 'src/core')
-rw-r--r--src/core/or/circuituse.c7
-rw-r--r--src/core/or/connection_edge.c12
2 files changed, 15 insertions, 4 deletions
diff --git a/src/core/or/circuituse.c b/src/core/or/circuituse.c
index 0f3fc29361..018654769d 100644
--- a/src/core/or/circuituse.c
+++ b/src/core/or/circuituse.c
@@ -2733,6 +2733,11 @@ consider_recording_trackhost(const entry_connection_t *conn,
const or_options_t *options = get_options();
char *new_address = NULL;
char fp[HEX_DIGEST_LEN+1];
+ uint64_t stream_id = 0;
+
+ if (conn) {
+ stream_id = ENTRY_TO_CONN(conn)->global_identifier;
+ }
/* Search the addressmap for this conn's destination. */
/* If they're not in the address map.. */
@@ -2756,7 +2761,7 @@ consider_recording_trackhost(const entry_connection_t *conn,
addressmap_register(conn->socks_request->address, new_address,
time(NULL) + options->TrackHostExitsExpire,
- ADDRMAPSRC_TRACKEXIT, 0, 0);
+ ADDRMAPSRC_TRACKEXIT, 0, 0, stream_id);
}
/** Attempt to attach the connection <b>conn</b> to <b>circ</b>, and send a
diff --git a/src/core/or/connection_edge.c b/src/core/or/connection_edge.c
index 8adfd73e81..b212160f60 100644
--- a/src/core/or/connection_edge.c
+++ b/src/core/or/connection_edge.c
@@ -3519,22 +3519,28 @@ tell_controller_about_resolved_result(entry_connection_t *conn,
int ttl,
time_t expires)
{
+ uint64_t stream_id = 0;
+
+ if (conn) {
+ stream_id = ENTRY_TO_CONN(conn)->global_identifier;
+ }
+
expires = time(NULL) + ttl;
if (answer_type == RESOLVED_TYPE_IPV4 && answer_len >= 4) {
char *cp = tor_dup_ip(ntohl(get_uint32(answer)));
if (cp)
control_event_address_mapped(conn->socks_request->address,
- cp, expires, NULL, 0);
+ cp, expires, NULL, 0, stream_id);
tor_free(cp);
} else if (answer_type == RESOLVED_TYPE_HOSTNAME && answer_len < 256) {
char *cp = tor_strndup(answer, answer_len);
control_event_address_mapped(conn->socks_request->address,
- cp, expires, NULL, 0);
+ cp, expires, NULL, 0, stream_id);
tor_free(cp);
} else {
control_event_address_mapped(conn->socks_request->address,
"<error>", time(NULL)+ttl,
- "error=yes", 0);
+ "error=yes", 0, stream_id);
}
}