diff options
author | Nick Mathewson <nickm@torproject.org> | 2013-09-20 11:00:43 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-09-20 11:00:43 -0400 |
commit | 07bb17185681f875be461c4fea6c661fae2dfde9 (patch) | |
tree | 77c7e5eb273099e36593ff51cc329f94f425543b /src/or/connection_or.c | |
parent | 0c807cf3e48cca5f4f93e8b1082bd62f2978cba4 (diff) | |
parent | 39bb59d36322f3092bcb8c80c54ce4930dddef3a (diff) | |
download | tor-07bb17185681f875be461c4fea6c661fae2dfde9.tar.gz tor-07bb17185681f875be461c4fea6c661fae2dfde9.zip |
Merge branch 'no_client_timestamps_024_v2' into maint-0.2.4
Diffstat (limited to 'src/or/connection_or.c')
-rw-r--r-- | src/or/connection_or.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/src/or/connection_or.c b/src/or/connection_or.c index d5dd4470e3..39a5317cfd 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -2051,8 +2051,9 @@ connection_or_send_netinfo(or_connection_t *conn) memset(&cell, 0, sizeof(cell_t)); cell.command = CELL_NETINFO; - /* Timestamp. */ - set_uint32(cell.payload, htonl((uint32_t)now)); + /* Timestamp, if we're a relay. */ + if (! conn->handshake_state->started_here) + set_uint32(cell.payload, htonl((uint32_t)now)); /* Their address. */ out = cell.payload + 4; @@ -2286,19 +2287,11 @@ connection_or_compute_authenticate_cell_body(or_connection_t *conn, if (server) return V3_AUTH_FIXED_PART_LEN; // ptr-out - /* Time: 8 octets. */ - { - uint64_t now = time(NULL); - if ((time_t)now < 0) - return -1; - set_uint32(ptr, htonl((uint32_t)(now>>32))); - set_uint32(ptr+4, htonl((uint32_t)now)); - ptr += 8; - } - - /* Nonce: 16 octets. */ - crypto_rand((char*)ptr, 16); - ptr += 16; + /* 8 octets were reserved for the current time, but we're trying to get out + * of the habit of sending time around willynilly. Fortunately, nothing + * checks it. That's followed by 16 bytes of nonce. */ + crypto_rand((char*)ptr, 24); + ptr += 24; tor_assert(ptr - out == V3_AUTH_BODY_LEN); |