]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
r16341@tombo: nickm | 2008-06-15 22:04:25 -0400
authorNick Mathewson <nickm@torproject.org>
Mon, 16 Jun 2008 02:08:30 +0000 (02:08 +0000)
committerNick Mathewson <nickm@torproject.org>
Mon, 16 Jun 2008 02:08:30 +0000 (02:08 +0000)
 Allow spaces to be omitted in approved-router file fingerprints. Requested by arma.

svn:r15296

ChangeLog
doc/TODO
src/or/dirserv.c

index c414f69d8b33d72c5c511cfa375e257cd4200cea..a7e5d230fcf8e400956652d76b4c80de0817ea63 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,8 @@ Changes in version 0.2.1.2-alpha - 2008-??-??
     - When building a consensus do not include routers that are down.
       This will cut down 30% to 40% on consensus size.  Implements
       proposal 138.
+    - In directory authorities' approved-routers files, allow
+      fingerprints with or without space.
 
   o Bugfixes:
     - Asking for a conditional consensus at .../consensus/<fingerprints>
index 25c65795954488a1998dbf6cc1f4c424cf5ef444..3265d5dd31b3b764e50b15126a763abca4da0901 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -186,13 +186,13 @@ Other things Roger would be excited to see:
 
 Nick
   o Send or-dev email about proposal statuses.
-  - Send or-dev email about window for new proposals, once arma and
+  o Send or-dev email about window for new proposals, once arma and
     nick agree.
   - Finish buffer stuff in libevent; start using it in Tor.
   - Tors start believing the contents of NETINFO cells.
-  - Work with Steven and Roger to decide which parts of Paul's project
+  . Work with Steven and Roger to decide which parts of Paul's project
     he wants to work on.
-  - let approved-routers lines omit spaces in fingerprint.
+  o let approved-routers lines omit spaces in fingerprint.
 
 Matt
   - Fit Vidalia in 640x480 again.
index 83126b95d61eea382ffa8b444727a0af579a3c3d..fbe23c2fd7d36b50bc5750c9cd53fac378795aae 100644 (file)
@@ -221,6 +221,7 @@ dirserv_load_fingerprint_file(void)
   fingerprint_list_new = authdir_config_new();
 
   for (list=front; list; list=list->next) {
+    char digest_tmp[DIGEST_LEN];
     nickname = list->key; fingerprint = list->value;
     if (strlen(nickname) > MAX_NICKNAME_LEN) {
       log_notice(LD_CONFIG,
@@ -237,8 +238,10 @@ dirserv_load_fingerprint_file(void)
                  nickname);
       continue;
     }
-    if (strlen(fingerprint) != FINGERPRINT_LEN ||
-        !crypto_pk_check_fingerprint_syntax(fingerprint)) {
+    tor_strstrip(fingerprint, " "); /* remove spaces */
+    if (strlen(fingerprint) != HEX_DIGEST_LEN ||
+        base16_decode(digest_tmp, sizeof(digest_tmp),
+                      fingerprint, HEX_DIGEST_LEN) < 0) {
       log_notice(LD_CONFIG,
                  "Invalid fingerprint (nickname '%s', "
                  "fingerprint %s). Skipping.",