From: Nick Mathewson Date: Thu, 25 Oct 2012 02:34:55 +0000 (-0400) Subject: Authorities put p6 lines into microdescriptors. X-Git-Tag: tor-0.2.4.7-alpha~35^2~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=04ea55014182776871841279f6917d1a03c4e905;p=thirdparty%2Ftor.git Authorities put p6 lines into microdescriptors. --- diff --git a/src/or/dirvote.c b/src/or/dirvote.c index f8b8d378cb..9810c820de 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -3569,6 +3569,17 @@ dirvote_create_microdescriptor(const routerinfo_t *ri, int consensus_method) if (summary && strcmp(summary, "reject 1-65535")) smartlist_add_asprintf(chunks, "p %s\n", summary); + if (consensus_method >= MIN_METHOD_FOR_P6_LINES && + ri->ipv6_exit_policy) { + /* XXXX024 This doesn't match proposal 208, which says these should + * be taken unchanged from the routerinfo. That's bogosity, IMO: + * the proposal should have said to do this instead.*/ + char *p6 = write_short_policy(ri->ipv6_exit_policy); + if (p6 && strcmp(p6, "reject 1-65535")) + smartlist_add_asprintf(chunks, "p6 %s\n", p6); + tor_free(p6); + } + output = smartlist_join_strings(chunks, "", 0, NULL); { diff --git a/src/or/dirvote.h b/src/or/dirvote.h index 04cf2f9710..d14a375161 100644 --- a/src/or/dirvote.h +++ b/src/or/dirvote.h @@ -20,7 +20,7 @@ #define MIN_VOTE_INTERVAL 300 /** The highest consensus method that we currently support. */ -#define MAX_SUPPORTED_CONSENSUS_METHOD 14 +#define MAX_SUPPORTED_CONSENSUS_METHOD 15 /** Lowest consensus method that contains a 'directory-footer' marker */ #define MIN_METHOD_FOR_FOOTER 9 @@ -45,6 +45,9 @@ /** Lowest consensus method that contains "a" lines. */ #define MIN_METHOD_FOR_A_LINES 14 +/** Lowest consensus method where microdescs may include a "p6" line. */ +#define MIN_METHOD_FOR_P6_LINES 15 + void dirvote_free_all(void); /* vote manipulation */