mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 20:33:31 +01:00
Merge remote-tracking branch 'origin/maint-0.2.2'
This commit is contained in:
commit
d0e7c545ba
4
changes/bug3216
Normal file
4
changes/bug3216
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
o Major bugfixes:
|
||||||
|
- Don't try to build descriptors if "ORPort auto" is set and we
|
||||||
|
don't know our actual ORPort yet. Fix for bug 3216; bugfix on
|
||||||
|
0.2.2.26-beta.
|
@ -2006,37 +2006,40 @@ retry_all_listeners(smartlist_t *replaced_conns,
|
|||||||
smartlist_t *new_conns)
|
smartlist_t *new_conns)
|
||||||
{
|
{
|
||||||
or_options_t *options = get_options();
|
or_options_t *options = get_options();
|
||||||
|
int retval = 0;
|
||||||
|
const uint16_t old_or_port = router_get_advertised_or_port(options);
|
||||||
|
const uint16_t old_dir_port = router_get_advertised_dir_port(options);
|
||||||
|
|
||||||
if (retry_listeners(CONN_TYPE_OR_LISTENER, options->ORListenAddress,
|
if (retry_listeners(CONN_TYPE_OR_LISTENER, options->ORListenAddress,
|
||||||
options->ORPort, "0.0.0.0",
|
options->ORPort, "0.0.0.0",
|
||||||
replaced_conns, new_conns, options->ClientOnly,
|
replaced_conns, new_conns, options->ClientOnly,
|
||||||
AF_INET)<0)
|
AF_INET)<0)
|
||||||
return -1;
|
retval = -1;
|
||||||
if (retry_listeners(CONN_TYPE_DIR_LISTENER, options->DirListenAddress,
|
if (retry_listeners(CONN_TYPE_DIR_LISTENER, options->DirListenAddress,
|
||||||
options->DirPort, "0.0.0.0",
|
options->DirPort, "0.0.0.0",
|
||||||
replaced_conns, new_conns, options->ClientOnly,
|
replaced_conns, new_conns, options->ClientOnly,
|
||||||
AF_INET)<0)
|
AF_INET)<0)
|
||||||
return -1;
|
retval = -1;
|
||||||
if (retry_listeners(CONN_TYPE_AP_LISTENER, options->SocksListenAddress,
|
if (retry_listeners(CONN_TYPE_AP_LISTENER, options->SocksListenAddress,
|
||||||
options->SocksPort, "127.0.0.1",
|
options->SocksPort, "127.0.0.1",
|
||||||
replaced_conns, new_conns, 0,
|
replaced_conns, new_conns, 0,
|
||||||
AF_INET)<0)
|
AF_INET)<0)
|
||||||
return -1;
|
retval = -1;
|
||||||
if (retry_listeners(CONN_TYPE_AP_TRANS_LISTENER, options->TransListenAddress,
|
if (retry_listeners(CONN_TYPE_AP_TRANS_LISTENER, options->TransListenAddress,
|
||||||
options->TransPort, "127.0.0.1",
|
options->TransPort, "127.0.0.1",
|
||||||
replaced_conns, new_conns, 0,
|
replaced_conns, new_conns, 0,
|
||||||
AF_INET)<0)
|
AF_INET)<0)
|
||||||
return -1;
|
retval = -1;
|
||||||
if (retry_listeners(CONN_TYPE_AP_NATD_LISTENER, options->NATDListenAddress,
|
if (retry_listeners(CONN_TYPE_AP_NATD_LISTENER, options->NATDListenAddress,
|
||||||
options->NATDPort, "127.0.0.1",
|
options->NATDPort, "127.0.0.1",
|
||||||
replaced_conns, new_conns, 0,
|
replaced_conns, new_conns, 0,
|
||||||
AF_INET)<0)
|
AF_INET)<0)
|
||||||
return -1;
|
retval = -1;
|
||||||
if (retry_listeners(CONN_TYPE_AP_DNS_LISTENER, options->DNSListenAddress,
|
if (retry_listeners(CONN_TYPE_AP_DNS_LISTENER, options->DNSListenAddress,
|
||||||
options->DNSPort, "127.0.0.1",
|
options->DNSPort, "127.0.0.1",
|
||||||
replaced_conns, new_conns, 0,
|
replaced_conns, new_conns, 0,
|
||||||
AF_INET)<0)
|
AF_INET)<0)
|
||||||
return -1;
|
retval = -1;
|
||||||
if (retry_listeners(CONN_TYPE_CONTROL_LISTENER,
|
if (retry_listeners(CONN_TYPE_CONTROL_LISTENER,
|
||||||
options->ControlListenAddress,
|
options->ControlListenAddress,
|
||||||
options->ControlPort, "127.0.0.1",
|
options->ControlPort, "127.0.0.1",
|
||||||
@ -2050,7 +2053,16 @@ retry_all_listeners(smartlist_t *replaced_conns,
|
|||||||
AF_UNIX)<0)
|
AF_UNIX)<0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return 0;
|
if (old_or_port != router_get_advertised_or_port(options) ||
|
||||||
|
old_dir_port != router_get_advertised_dir_port(options)) {
|
||||||
|
/* Our chosen ORPort or DirPort is not what it used to be: the
|
||||||
|
* descriptor we had (if any) should be regenerated. (We won't
|
||||||
|
* automatically notice this because of changes in the option,
|
||||||
|
* since the value could be "auto".) */
|
||||||
|
mark_my_descriptor_dirty("Chosen Or/DirPort changed");
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Return 1 if we should apply rate limiting to <b>conn</b>,
|
/** Return 1 if we should apply rate limiting to <b>conn</b>,
|
||||||
|
@ -805,6 +805,8 @@ decide_to_advertise_dirport(or_options_t *options, uint16_t dir_port)
|
|||||||
return 0;
|
return 0;
|
||||||
if (!check_whether_dirport_reachable())
|
if (!check_whether_dirport_reachable())
|
||||||
return 0;
|
return 0;
|
||||||
|
if (!router_get_advertised_dir_port(options))
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* Section two: reasons to publish or not publish that the user
|
/* Section two: reasons to publish or not publish that the user
|
||||||
* might find surprising. These are generally config options that
|
* might find surprising. These are generally config options that
|
||||||
@ -1142,6 +1144,8 @@ decide_if_publishable_server(void)
|
|||||||
return 0;
|
return 0;
|
||||||
if (authdir_mode(options))
|
if (authdir_mode(options))
|
||||||
return 1;
|
return 1;
|
||||||
|
if (!router_get_advertised_or_port(options))
|
||||||
|
return 0;
|
||||||
|
|
||||||
return check_whether_orport_reachable();
|
return check_whether_orport_reachable();
|
||||||
}
|
}
|
||||||
@ -1421,7 +1425,8 @@ router_rebuild_descriptor(int force)
|
|||||||
if (desc_clean_since && !force)
|
if (desc_clean_since && !force)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (router_pick_published_address(options, &addr) < 0) {
|
if (router_pick_published_address(options, &addr) < 0 ||
|
||||||
|
router_get_advertised_or_port(options) == 0) {
|
||||||
/* Stop trying to rebuild our descriptor every second. We'll
|
/* Stop trying to rebuild our descriptor every second. We'll
|
||||||
* learn that it's time to try again when ip_address_changed()
|
* learn that it's time to try again when ip_address_changed()
|
||||||
* marks it dirty. */
|
* marks it dirty. */
|
||||||
|
Loading…
Reference in New Issue
Block a user