Mismatch between dir-spec.txt and routerparse.c
In legacy/trac#5041 we learned that leaving out `contact` lines from votes is permitted by the spec, but not by the code. I briefly compared dir-spec.txt and routerparse.c to find more mismatches between spec and code. Here's what I found: - `protocols` lines are specified in dir-spec.txt and written to server descriptors, but they are not parsed in routerparse.c. - `consensus-method` lines are specified as "Exactly once for consensuses" but implemented using the `T01` macro in routerparse.c. - `contact` lines are specified as "At most once" for votes and authority sections of consensuses, but are implemented using the `T1` and `T1N` macro in routerparse.c. - `legacy-key-dir` lines are specified as `legacy-key` in dir-spec.txt. - `s` lines are specified as "At most once" in dir-spec.txt, but are implemented using the `T1` macro in routerparse.c. I didn't prepare a patch, because I didn't know whether to fix spec or code. If someone tells me, I can prepare one.
issue