aboutsummaryrefslogtreecommitdiff
path: root/src/or/connection_or.c
diff options
context:
space:
mode:
authorAndrea Shepard <andrea@torproject.org>2014-09-05 11:08:46 -0700
committerAndrea Shepard <andrea@torproject.org>2014-09-05 11:12:08 -0700
commit39a017809b6e7f8f779cfa0b4ebea3c0209bef0c (patch)
treef8c9334acf8e44c59204d871b353a32b0601a7be /src/or/connection_or.c
parentdcb4ee5b83b69234ef8fd0fce8533ab1c4434bd9 (diff)
downloadtor-39a017809b6e7f8f779cfa0b4ebea3c0209bef0c.tar.gz
tor-39a017809b6e7f8f779cfa0b4ebea3c0209bef0c.zip
Correctly update channel local mark when address of incoming connection changes after handshake; fixes bug #12160
Diffstat (limited to 'src/or/connection_or.c')
-rw-r--r--src/or/connection_or.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/or/connection_or.c b/src/or/connection_or.c
index 16f87349fc..c372270b4c 100644
--- a/src/or/connection_or.c
+++ b/src/or/connection_or.c
@@ -923,6 +923,15 @@ connection_or_init_conn_from_address(or_connection_t *conn,
tor_free(conn->base_.address);
conn->base_.address = tor_dup_addr(addr);
}
+
+ /*
+ * We have to tell channeltls.c to update the channel marks (local, in
+ * particular), since we may have changed the address.
+ */
+
+ if (conn->chan) {
+ channel_tls_update_marks(conn);
+ }
}
/** These just pass all the is_bad_for_new_circs manipulation on to