Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
The Tor Project
Core
Tor
Commits
f266ecbe
Commit
f266ecbe
authored
Jun 19, 2009
by
Karsten Loesing
Browse files
Better fix for 997.
parent
20883f5e
Changes
4
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
f266ecbe
...
...
@@ -29,6 +29,11 @@ Changes in version 0.2.1.16-?? - 2009-??-??
- Avoid crashing when we have a policy specified in a DirPolicy or
SocksPolicy or ReachableAddresses option with ports set on it, and we
re-load the policy. May fix bug 996.
- Hidden service clients didn't use a cached service descriptor that
was older than 15 minutes, but wouldn't fetch a new one either,
because there was already one in the cache. Now, fetch a v2
descriptor unless the same descriptor was added to the cache within
the last 15 minutes. Fixes bug 997; reported by Marcus Griep.
o Minor bugfixes (on 0.2.1.x):
- When switching back and forth between bridge mode, do not start
...
...
src/or/connection_edge.c
View file @
f266ecbe
...
...
@@ -1683,9 +1683,6 @@ connection_ap_handshake_rewrite_and_attach(edge_connection_t *conn,
if
(
conn
->
rend_data
->
auth_type
==
REND_NO_AUTH
)
rend_client_refetch_renddesc
(
conn
->
rend_data
->
onion_address
);
}
else
{
/* r > 0 */
/** How long after we receive a hidden service descriptor do we consider
* it valid? */
#define NUM_SECONDS_BEFORE_HS_REFETCH (60*15)
if
(
now
-
entry
->
received
<
NUM_SECONDS_BEFORE_HS_REFETCH
)
{
conn
->
_base
.
state
=
AP_CONN_STATE_CIRCUIT_WAIT
;
log_info
(
LD_REND
,
"Descriptor is here and fresh enough. Great."
);
...
...
src/or/or.h
View file @
f266ecbe
...
...
@@ -636,6 +636,10 @@ typedef enum {
/** Length of a binary-encoded rendezvous service ID. */
#define REND_SERVICE_ID_LEN 10
/** How long after we receive a hidden service descriptor do we consider
* it fresh? */
#define NUM_SECONDS_BEFORE_HS_REFETCH (60*15)
/** Time period for which a v2 descriptor will be valid. */
#define REND_TIME_PERIOD_V2_DESC_VALIDITY (24*60*60)
...
...
src/or/rendclient.c
View file @
f266ecbe
...
...
@@ -482,8 +482,9 @@ rend_client_refetch_v2_renddesc(const rend_data_t *rend_query)
{
char
descriptor_id
[
DIGEST_LEN
];
int
replicas_left_to_try
[
REND_NUMBER_OF_NON_CONSECUTIVE_REPLICAS
];
int
i
,
tries_left
;
int
i
,
tries_left
,
r
;
rend_cache_entry_t
*
e
=
NULL
;
time_t
now
=
time
(
NULL
);
tor_assert
(
rend_query
);
/* Are we configured to fetch descriptors? */
if
(
!
get_options
()
->
FetchHidServDescriptors
)
{
...
...
@@ -492,9 +493,11 @@ rend_client_refetch_v2_renddesc(const rend_data_t *rend_query)
return
;
}
/* Before fetching, check if we already have the descriptor here. */
if
(
rend_cache_lookup_entry
(
rend_query
->
onion_address
,
-
1
,
&
e
)
>
0
)
{
r
=
rend_cache_lookup_entry
(
rend_query
->
onion_address
,
-
1
,
&
e
);
if
(
r
>
0
&&
now
-
e
->
received
<
NUM_SECONDS_BEFORE_HS_REFETCH
)
{
log_info
(
LD_REND
,
"We would fetch a v2 rendezvous descriptor, but we "
"already have that descriptor here. Not fetching."
);
"already have a fresh copy of that descriptor here. "
"Not fetching."
);
return
;
}
log_debug
(
LD_REND
,
"Fetching v2 rendezvous descriptor for service %s"
,
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment