In the wake of #12899 (moved), it became apparent that redoing the approved-routers file is a good idea. It'll be replaced by a torrc-style file called bad-relays.
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.
I haven't talked with other dirauth ops other than arma or weasel (who are the only ones voting on BadExit currently besides gabelmoo). Weasel is also the only one who had an auto-naming setup (other than gabelmoo), which dealt with the approved-routers file. At this point, I don't know what to gain from talking to them.
As for an automatic migration tool, it's super trivial and not trivial at the same time:
would totally work, but produce some warnings about unrecognized lines. Writing a tool to only extract the options which the new file supports is easy, but that would lose comments which explain why entries are there. Maybe I can provide a script to just comment out every non-badrelays-line for the migration or something, but really this should be super trivial for anyone to do.
Trivial script for conversion. It dumps all comments in the new file, preserves newlines, and removes all unknown lines (=the ones which belong to the naming system or the torrc).
torrc = "./torrc"approved_routers = "./approved-routers"outfile = "./bad-relays"outfile_reject = outfile + ".reject"infiles = [torrc, approved_routers]outf = open(outfile, 'w')outf_rej = open(outfile_reject, 'w')for f in infiles: for line in file(f, 'r'): l = line.strip().split(None, 1) if (len(l) == 0 or l[0].startswith('#')): outf.write(line) elif l[0].lower() in ['authdirbadexit', 'authdirbadexitcc', 'authdirinvalid', 'authdirinvalidcc', 'authdirreject', 'authdirrejectcc', '!badexit', '!invalid', '!reject', '' ]: if (len(l) == 1): outf.write(line) else: outf.write(l[0] + " " + l[1].replace(' ', '') + "\n") else: outf_rej.write(line)
Found the bug, testing in a privnet and on gabelmoo revealed no issues anymore. I'm keeping it running and will provide a new branch once #13078 (moved) has landed.
I think you're confusing things a bit, this file is in a Tor dirauths data directory and these aren't world-readable.
But I could export the file via https and we could loop in karsten to see whether we want to archive it along with the consensus? If you'd want that, please file a new ticket for that, tho - it has nothing to do with the technical implementation I believe
Are the syntaxes the same? Did AuthDirRejectCC take names wrapped in curly braces, the way that an authdirreject line will expect? if not, the transition tool needs to add braces.
Also:
I'd like the badrelays_t implementation stuff to be in its own file.
The function should be named badrelays_free(), I think: not free_badrelays_set().
The return values from routerset_contains_router() should have constant names, and should be documented. The code to convert them into strings should be its own function.
Why did you remove directory_remove_invalid() ? We'll need to run that whenever we reload the badrelays file, right?
It is impossible that we will fix all 188 currently open 028 tickets before 028 releases. Time to move some out. This is my second pass through the "needs_revision" tickets, looking for things to move to 0.2.9.
Note that if the requested revisions happen in advance of the 0.2.8 freeze, they can get considered for 0.2.8.
Trac: Milestone: Tor: 0.2.8.x-final to Tor: 0.2.9.x-final