[tor-commits] [tor/master] Add GETINFO hs/service/desc/id/ control command

nickm at torproject.org nickm at torproject.org
Fri Oct 2 11:48:21 UTC 2015


commit 580673cf9487389a55c9c0efea54b818ec272d9c
Author: Donncha O'Cearbhaill <donncha at donncha.is>
Date:   Wed Jul 29 15:11:56 2015 +0200

    Add GETINFO hs/service/desc/id/ control command
    
    Adds a control command to fetch a local service descriptor from the
    service descriptor cache. The local service descriptor cache is
    referenced by the onion address of the service.
    
    This control command is documented in the control spec.
---
 src/or/control.c |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/or/control.c b/src/or/control.c
index fb74d7d..900162e 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -1927,6 +1927,22 @@ getinfo_helper_dir(control_connection_t *control_conn,
       *errmsg = "Not found in cache";
       return -1;
     }
+  } else if (!strcmpstart(question, "hs/service/desc/id/")) {
+    rend_cache_entry_t *e = NULL;
+
+    question += strlen("hs/service/desc/id/");
+    if (strlen(question) != REND_SERVICE_ID_LEN_BASE32) {
+      *errmsg = "Invalid address";
+      return -1;
+    }
+
+    if (!rend_cache_lookup_entry(question, -1, &e, 1)) {
+      /* Descriptor found in cache */
+      *answer = tor_strdup(e->desc);
+    } else {
+      *errmsg = "Not found in cache";
+      return -1;
+    }
   } else if (!strcmpstart(question, "md/id/")) {
     const node_t *node = node_get_by_hex_id(question+strlen("md/id/"));
     const microdesc_t *md = NULL;
@@ -2481,6 +2497,8 @@ static const getinfo_item_t getinfo_items[] = {
   PREFIX("extra-info/digest/", dir, "Extra-info documents by digest."),
   PREFIX("hs/client/desc/id", dir,
          "Hidden Service descriptor in client's cache by onion."),
+  PREFIX("hs/service/desc/id/", dir,
+         "Hidden Service descriptor in services's cache by onion."),
   PREFIX("net/listeners/", listeners, "Bound addresses by type"),
   ITEM("ns/all", networkstatus,
        "Brief summary of router status (v2 directory format)"),





More information about the tor-commits mailing list