summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2008-01-21 21:21:19 +0000
committerRoger Dingledine <arma@torproject.org>2008-01-21 21:21:19 +0000
commita49f14d0d499615f7729fb20fa8e6fe52791810b (patch)
tree79f0c0edb782624451d3df545c94af107d088121
parentb79850d5748879109484a72615105c57a6de2d0a (diff)
downloadtor-a49f14d0d499615f7729fb20fa8e6fe52791810b.tar.gz
tor-a49f14d0d499615f7729fb20fa8e6fe52791810b.zip
When we setconf ClientOnly to 1, close any current OR and Dir
listeners. Reported by mwenge. svn:r13214
-rw-r--r--ChangeLog4
-rw-r--r--src/or/connection.c9
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 89b291cf0b..7a9b1c0cec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,10 @@ Changes in version 0.2.0.18-alpha - 2008-01-??
the request isn't encrypted.
- Make "ClientOnly 1" config option disable directory ports too.
+ o Minor bugfixes:
+ - When we setconf ClientOnly to 1, close any current OR and Dir
+ listeners. Reported by mwenge.
+
Changes in version 0.2.0.17-alpha - 2008-01-17
Tor 0.2.0.17-alpha makes the tarball build cleanly again (whoops).
diff --git a/src/or/connection.c b/src/or/connection.c
index 31c9c170f0..5c0ee12fd1 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -1177,6 +1177,9 @@ connection_connect(connection_t *conn, const char *address,
* only close listeners that are no longer wanted. Existing listeners
* that are still configured are not touched.
*
+ * If <b>disable_all_conns</b> is set, then never open new conns, and
+ * close the existing ones.
+ *
* Add all old conns that should be closed to <b>replaced_conns</b>.
* Add all new connections to <b>new_conns</b>.
*/
@@ -1185,7 +1188,7 @@ retry_listeners(int type, config_line_t *cfg,
int port_option, const char *default_addr,
smartlist_t *replaced_conns,
smartlist_t *new_conns,
- int never_open_conns,
+ int disable_all_conns,
int socket_family)
{
smartlist_t *launch = smartlist_create(), *conns;
@@ -1251,7 +1254,7 @@ retry_listeners(int type, config_line_t *cfg,
tor_assert(0);
}
});
- if (! line) {
+ if (!line || disable_all_conns) {
/* This one isn't configured. Close it. */
log_notice(LD_NET, "Closing no-longer-configured %s on %s:%d",
conn_type_to_string(type), conn->address, conn->port);
@@ -1273,7 +1276,7 @@ retry_listeners(int type, config_line_t *cfg,
/* Now open all the listeners that are configured but not opened. */
r = 0;
- if (!never_open_conns) {
+ if (!disable_all_conns) {
SMARTLIST_FOREACH(launch, config_line_t *, cfg_line,
{
char *address = NULL;