(There were other non-comment lines in the torrc, including lines specifying hidden services, but those are not relevant.)
I expected this Tor instance to publish hidden service descriptors and not publish any router descriptor (whether bridge or public relay). Instead, it published a router descriptor as a public relay.
The hidserv parameter to the PublishServerDescriptor torrc option is obsolete, it is ignored by the code that publishes hidden service descriptors (even v0 descriptors), and the configuration-parsing code should explicitly ignore it (and print a warning).
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
- *auth |= HIDSERV_AUTHORITY;+ log_warn(LD_CONFIG,+ "PublishServerDescriptor hidserv is obsolete. See "+ "PublishHidServDescriptors.");
When you print your warning here, you will likely get bitten by the bug where the logs aren't set up while parsing the config. So if the user has the default stdout notice log we give him, he'll see the warning. But if this Tor is being run in some other way (started in background, launched by controller, etc) this log_warn may be silent.
I wonder what documentation we actually recommended using PublishServerDescriptor in this way.
I'm tempted to fail the Tor, rather than just warn, so the user will notice and fix it.
"PublishServerDescriptor hidserv is obsolete. See "
"PublishHidServDescriptors.");
}}}
When you print your warning here, you will likely get bitten by the bug where the logs aren't set up while parsing the config. So if the user has the default stdout notice log we give him, he'll see the warning. But if this Tor is being run in some other way (started in background, launched by controller, etc) this log_warn may be silent.
Vidalia on Windows displays notice messages in its message log on startup, so I would expect warnings to show up there, too.
I don't know what init scripts for the various Unix-like systems do, but they can and should arrange to capture early log messages to syslog. I assume at least some of the init scripts out there don't do this.
I wonder what documentation we actually recommended using PublishServerDescriptor in this way.
The man page said that PublishServerDescriptor accepted a hidserv argument, and that PublishServerDescriptor hidserv would result in Tor only publishing descriptors to HS directories. As far as I can tell, this was never true.
I'm tempted to fail the Tor, rather than just warn, so the user will notice and fix it.
That seems reasonable, especially because if that change would halt your Tor process, this bug has already shot you in the foot, and you probably need to re-key and change your port and/or IP to keep your bridge unpublished.
I'm changing this ticket back to assigned, because this change will need to be forward-ported from maint-0.2.1 more carefully than usual (at the very least, I should forward-port the man page change, but I also want to check for other occurrences of PublishServerDescriptor in maint-0.2.2 and master just in case).
Vidalia on Windows displays notice messages in its message log on startup, so I would expect warnings to show up there, too.
Yes, they do, even before Vidalia has opened a control port connection to Tor. (I tested this by adding NoPublish foo to my torrc, in order to provoke a warning, and then telling Vidalia to start Tor.)
I'm tempted to fail the Tor, rather than just warn, so the user will notice and fix it.
That seems reasonable, especially because if that change would halt your Tor process, this bug has already shot you in the foot, and you probably need to re-key and change your port and/or IP to keep your bridge unpublished.
I decided not to do this, because there are enough other configuration warnings that users really need to see those log messages, and because making Tor fail to start won't actually help get a message to the user.
I'm changing this ticket back to assigned, because this change will need to be forward-ported from maint-0.2.1 more carefully than usual (at the very least, I should forward-port the man page change, but I also want to check for other occurrences of PublishServerDescriptor in maint-0.2.2 and master just in case).