]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Prop210: Add router_digest_is_fallback_dir
authorteor (Tim Wilson-Brown) <teor2345@gmail.com>
Thu, 10 Dec 2015 18:49:23 +0000 (05:49 +1100)
committerteor (Tim Wilson-Brown) <teor2345@gmail.com>
Tue, 15 Dec 2015 17:37:59 +0000 (04:37 +1100)
router_digest_is_fallback_dir returns 1 if the digest is in the
currently loaded list of fallback directories, and 0 otherwise.

This function is for future use.

src/or/routerlist.c
src/or/routerlist.h

index 0027a04cb5230fb12498ed4a3e2a45fb949909fe..458d19cf6cca4e469870940243442321db120c92 100644 (file)
@@ -1362,7 +1362,9 @@ router_get_trusteddirserver_by_digest(const char *digest)
 }
 
 /** Return the dir_server_t for the fallback dirserver whose identity
- * key hashes to <b>digest</b>, or NULL if no such authority is known.
+ * key hashes to <b>digest</b>, or NULL if no such fallback is in the list of
+ * fallback_dir_servers. (fallback_dir_servers is affected by the FallbackDir
+ * and UseDefaultFallbackDirs torrc options.)
  */
 dir_server_t *
 router_get_fallback_dirserver_by_digest(const char *digest)
@@ -1370,6 +1372,9 @@ router_get_fallback_dirserver_by_digest(const char *digest)
   if (!fallback_dir_servers)
     return NULL;
 
+  if (!digest)
+    return NULL;
+
   SMARTLIST_FOREACH(fallback_dir_servers, dir_server_t *, ds,
      {
        if (tor_memeq(ds->digest, digest, DIGEST_LEN))
@@ -1379,6 +1384,17 @@ router_get_fallback_dirserver_by_digest(const char *digest)
   return NULL;
 }
 
+/** Return 1 if any fallback dirserver's identity key hashes to <b>digest</b>,
+ * or 0 if no such fallback is in the list of fallback_dir_servers.
+ * (fallback_dir_servers is affected by the FallbackDir and
+ * UseDefaultFallbackDirs torrc options.)
+ */
+int
+router_digest_is_fallback_dir(const char *digest)
+{
+  return (router_get_fallback_dirserver_by_digest(digest) != NULL);
+}
+
 /** Return the dir_server_t for the directory authority whose
  * v3 identity key hashes to <b>digest</b>, or NULL if no such authority
  * is known.
index 100ab5848fb2918990108fce63e1b616c5eba8fe..d660bcd1be22d58532b7121025ffe721f3176e60 100644 (file)
@@ -50,6 +50,7 @@ const routerstatus_t *router_pick_directory_server(dirinfo_type_t type,
 dir_server_t *router_get_trusteddirserver_by_digest(const char *d);
 dir_server_t *router_get_fallback_dirserver_by_digest(
                                                    const char *digest);
+int router_digest_is_fallback_dir(const char *digest);
 dir_server_t *trusteddirserver_get_by_v3_auth_digest(const char *d);
 const routerstatus_t *router_pick_trusteddirserver(dirinfo_type_t type,
                                                    int flags);