aboutsummaryrefslogtreecommitdiff
path: root/src/feature/nodelist/nodefamily.c
AgeCommit message (Collapse)Author
2020-02-10Use semicolons after HT_PROTOTYPE and HT_GENERATE.Nick Mathewson
2020-01-08It's 2020. Update the copyright dates with "make update-copyright"Nick Mathewson
2019-01-16Bump copyright date to 2019Nick Mathewson
2018-11-24Add a function to canonicalize nodefamilies per prop298Nick Mathewson
This is the same as the regular canonical nodefamily format, except that unrecognized elements are preserved.
2018-11-24Revise nodefamily.c to match proposal 298Nick Mathewson
Prop298 says that family entries should be formatted with $hexids in uppercase, nicknames in lower case, $hexid~names truncated, and everything sorted lexically. These changes implement that ordering for nodefamily.c. We don't _strictly speaking_ need to nodefamily.c formatting use this for prop298 microdesc generation, but it seems silly to have two separate canonicalization algorithms.
2018-11-19Backend for compact node-family representation.Nick Mathewson
This representation is meant to save memory in microdescriptors -- we can't use it in routerinfo_t yet, since those families need to be encoded losslessly for directory voting to work. This representation saves memory in three ways: 1. It uses only one allocation per family. (The old way used a smartlist (2 allocs) plus one strdup per entry.) 2. It stores identity digests in binary, not hex. 3. It keeps families in a canonical format, memoizes, and reference-counts them. Part of #27359.