diff options
author | Nick Mathewson <nickm@torproject.org> | 2012-10-24 22:34:55 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2012-11-14 23:16:22 -0500 |
commit | 04ea55014182776871841279f6917d1a03c4e905 (patch) | |
tree | 478f061c1e4f57d24baf1e8bf731e85b8f6ad669 | |
parent | c53adac122e88dbd943febfdd1f3deeab9e8309a (diff) | |
download | tor-04ea55014182776871841279f6917d1a03c4e905.tar.gz tor-04ea55014182776871841279f6917d1a03c4e905.zip |
Authorities put p6 lines into microdescriptors.
-rw-r--r-- | src/or/dirvote.c | 11 | ||||
-rw-r--r-- | src/or/dirvote.h | 5 |
2 files changed, 15 insertions, 1 deletions
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 */ |