--- /dev/null
+ o Minor feature (directory authority):
+ - Allow BandwidthFiles "node_id" KeyValue without the dollar sign at the
+ start of the hexdigit, in order to easier database queries combining
+ Tor documents in which the relays fingerprint does not include it.
+ Fixes bug 40891; bugfix on 0.4.7 (all supported versions of Tor).
return -1;
}
got_bw=1;
- } else if (strcmpstart(cp, "node_id=$") == 0) {
+ // Allow node_id to start with or without the dollar sign.
+ } else if (strcmpstart(cp, "node_id=") == 0) {
if (got_node_id) {
log_warn(LD_DIRSERV, "Double node_id= in bandwidth file line: %s",
escaped(orig_line));
tor_free(line);
return -1;
}
- cp+=strlen("node_id=$");
-
+ if (strcmpstart(cp, "node_id=$") == 0) {
+ cp+=strlen("node_id=$");
+ } else if (strcmpstart(cp, "node_id=") == 0) {
+ cp+=strlen("node_id=");
+ }
if (strlen(cp) != HEX_DIGEST_LEN ||
base16_decode(out->node_id, DIGEST_LEN,
cp, HEX_DIGEST_LEN) != DIGEST_LEN) {
int i;
const char *lines_pass[] = {
"node_id=$557365204145532d32353620696e73746561642e bw=1024\n",
+ /* check whether node_id does not need the dollar sign at the start */
+ "node_id=557365204145532d32353620696e73746561642e bw=1024\n",
"node_id=$557365204145532d32353620696e73746561642e\t bw=1024 \n",
" node_id=$557365204145532d32353620696e73746561642e bw=1024\n",
"\tnoise\tnode_id=$557365204145532d32353620696e73746561642e "
" node_id= ",
"node_id==$557365204145532d32353620696e73746561642e bw==1024\n",
"node_id=$55736520414552d32353620696e73746561642e bw=1024\n",
- "node_id=557365204145532d32353620696e73746561642e bw=1024\n",
"node_id= $557365204145532d32353620696e73746561642e bw=0.23\n",
/* Test that a line with vote=0 will fail too, so that it is ignored. */