Skip to content
Snippets Groups Projects
Forked from The Tor Project / Core / Tor
Source project has a limited visibility.
  • Nick Mathewson's avatar
    dfe03d36
    Don't infer we have a FooPort from the presence of a FooPort line · dfe03d36
    Nick Mathewson authored
    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.
    dfe03d36
    History
    Don't infer we have a FooPort from the presence of a FooPort line
    Nick Mathewson authored
    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.