[tor-commits] [tor/master] Add IPv6 OR port to microdesc_t and populate it.

nickm at torproject.org nickm at torproject.org
Tue Sep 4 22:24:27 UTC 2012


commit 7a8366a3eb7081c29cbc0ebf0e9757cbfd71a86d
Author: Linus Nordberg <linus at torproject.org>
Date:   Fri Aug 31 23:02:19 2012 +0200

    Add IPv6 OR port to microdesc_t and populate it.
---
 src/or/or.h          |    4 ++++
 src/or/routerparse.c |    9 +++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/or/or.h b/src/or/or.h
index 7536afc..4bf99e2 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -1960,6 +1960,10 @@ typedef struct microdesc_t {
 
   /** As routerinfo_t.onion_pkey */
   crypto_pk_t *onion_pkey;
+  /** As routerinfo_t.ipv6_add */
+  tor_addr_t ipv6_addr;
+  /** As routerinfo_t.ipv6_orport */
+  uint16_t ipv6_orport;
   /** As routerinfo_t.family */
   smartlist_t *family;
   /** Exit policy summary */
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index 60a2eae..4eec19f 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -522,6 +522,7 @@ static token_rule_t networkstatus_detached_signature_token_table[] = {
 /** List of tokens recognized in microdescriptors */
 static token_rule_t microdesc_token_table[] = {
   T1_START("onion-key",        K_ONION_KEY,        NO_ARGS,     NEED_KEY_1024),
+  T0N("a",                     K_A,                GE(1),       NO_OBJ ),
   T01("family",                K_FAMILY,           ARGS,        NO_OBJ ),
   T01("p",                     K_P,                CONCAT_ARGS, NO_OBJ ),
   A01("@last-listed",          A_LAST_LISTED,      CONCAT_ARGS, NO_OBJ ),
@@ -4421,6 +4422,14 @@ microdescs_parse_from_string(const char *s, const char *eos,
     md->onion_pkey = tok->key;
     tok->key = NULL;
 
+    {
+      smartlist_t *a_lines = find_all_by_keyword(tokens, K_A);
+      if (a_lines) {
+        find_single_ipv6_orport(a_lines, &md->ipv6_addr, &md->ipv6_orport);
+        smartlist_free(a_lines);
+      }
+    }
+
     if ((tok = find_opt_by_keyword(tokens, K_FAMILY))) {
       int i;
       md->family = smartlist_new();





More information about the tor-commits mailing list