diff options
author | Nick Mathewson <nickm@torproject.org> | 2012-08-09 15:48:43 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2012-08-09 15:48:43 -0400 |
commit | dfe03d36c8749eb07e9bb2ea47e88ff05e9e3127 (patch) | |
tree | 37daa659761760dcd12e680bbe1b952cee40ea24 /src/or/directory.h | |
parent | 91b52a259a271df7ceeea6d8bf7adbd4d7e15a6c (diff) | |
download | tor-dfe03d36c8749eb07e9bb2ea47e88ff05e9e3127.tar.gz tor-dfe03d36c8749eb07e9bb2ea47e88ff05e9e3127.zip |
Don't infer we have a FooPort from the presence of a FooPort line
Thanks to the changes we started making with SocksPort and friends
in 0.2.3.3-alpha, any of our code that did "if (options->Sockport)"
became wrong, since "SocksPort 0" would make that test true whereas
using the default SocksPort value would make it false. (We didn't
actually do "if (options->SockPort)" but we did have tests for
TransPort. When we moved DirPort, ORPort, and ControlPort over to
the same system in 0.2.3.9-alpha, the problem got worse, since our
code is littered with checks for DirPort and ORPort as booleans.
This code renames the current linelist-based FooPort options to
FooPort_lines, and adds new FooPort_set options which get set at
parse-and-validate time on the or_options_t. FooPort_set is true
iff we will actually try to open a listener of the given type. (I
renamed the FooPort options rather than leave them alone so that
every previous user of a FooPort would need to get inspected, and so
that any new code that forgetfully uses FooPort will need fail to
compile.)
Fix for bug 6507.
Diffstat (limited to 'src/or/directory.h')
-rw-r--r-- | src/or/directory.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/or/directory.h b/src/or/directory.h index 584fe84311..1ca1c5a6e0 100644 --- a/src/or/directory.h +++ b/src/or/directory.h @@ -80,7 +80,7 @@ time_t download_status_increment_failure(download_status_t *dls, * the optional status code <b>sc</b>. */ #define download_status_failed(dls, sc) \ download_status_increment_failure((dls), (sc), NULL, \ - get_options()->DirPort!=NULL, time(NULL)) + get_options()->DirPort_set, time(NULL)) void download_status_reset(download_status_t *dls); static int download_status_is_ready(download_status_t *dls, time_t now, |