mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Fix get_configured_bridge_by_addr_port_digest(.,.,NULL)
The old behavior was that NULL matched only bridges without known identities; the correct behavior is that NULL should match all bridges (assuming that their addr:port matches).
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
o Minor bugfixes:
|
||||
- Fix a get_configured_bridge_by_addr_port_digest() function so
|
||||
that it would return a bridge with given address and port even
|
||||
if bridge digest is not specified by caller. Fixes bug 9162;
|
||||
bugfix on 0.2.0.3-alpha. Based on a patch from "rl1987".
|
||||
|
||||
+3
-2
@@ -1657,7 +1657,8 @@ get_configured_bridge_by_orports_digest(const char *digest,
|
||||
|
||||
/** If we have a bridge configured whose digest matches <b>digest</b>, or a
|
||||
* bridge with no known digest whose address matches <b>addr</b>:<b>/port</b>,
|
||||
* return that bridge. Else return NULL. */
|
||||
* return that bridge. Else return NULL. If <b>digest</b> is NULL, check for
|
||||
* address/port matches only. */
|
||||
static bridge_info_t *
|
||||
get_configured_bridge_by_addr_port_digest(const tor_addr_t *addr,
|
||||
uint16_t port,
|
||||
@@ -1667,7 +1668,7 @@ get_configured_bridge_by_addr_port_digest(const tor_addr_t *addr,
|
||||
return NULL;
|
||||
SMARTLIST_FOREACH_BEGIN(bridge_list, bridge_info_t *, bridge)
|
||||
{
|
||||
if (tor_digest_is_zero(bridge->identity) &&
|
||||
if ((tor_digest_is_zero(bridge->identity) || digest == NULL) &&
|
||||
!tor_addr_compare(&bridge->addr, addr, CMP_EXACT) &&
|
||||
bridge->port == port)
|
||||
return bridge;
|
||||
|
||||
Reference in New Issue
Block a user