aboutsummaryrefslogtreecommitdiff
path: root/src/or/router.c
diff options
context:
space:
mode:
authorQingping Hou <dave2008713@gmail.com>2013-10-09 11:13:06 -0400
committerQingping Hou <dave2008713@gmail.com>2014-01-29 22:23:57 -0500
commit29c18f5b71d73a03b9895fbbf97a3a5a16099a50 (patch)
tree3e59a10e4a958de118075a05aebd298db5f40993 /src/or/router.c
parent3b38fd87e812a104f835af59abeda012928e21b7 (diff)
downloadtor-29c18f5b71d73a03b9895fbbf97a3a5a16099a50.tar.gz
tor-29c18f5b71d73a03b9895fbbf97a3a5a16099a50.zip
add hidden service descriptor async control event
Diffstat (limited to 'src/or/router.c')
-rw-r--r--src/or/router.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/or/router.c b/src/or/router.c
index 959e5e34c3..de78895c8b 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -2926,6 +2926,29 @@ node_describe(const node_t *node)
return node_get_description(buf, node);
}
+/** Return a human-readable description of the node whose identity is
+ * <b>identity_digest</b>. If node_get_by_id() returns NULL, base 16 encoding
+ * of <b>identity_digest</b> is returned instead.
+ *
+ * This function is not thread-safe. Each call to this function invalidates
+ * previous values returned by this function.
+ */
+const char *
+node_describe_by_id(const char *identity_digest)
+{
+ static char buf[NODE_DESC_BUF_LEN];
+ const node_t *node = NULL;
+
+ node = node_get_by_id(identity_digest);
+ if (!node) {
+ buf[0] = '$';
+ base16_encode(buf+1, HEX_DIGEST_LEN+1, identity_digest, DIGEST_LEN);
+ return buf;
+ } else {
+ return node_get_description(buf, node);
+ }
+}
+
/** Return a human-readable description of the routerstatus_t <b>rs</b>.
*
* This function is not thread-safe. Each call to this function invalidates