diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-09-20 08:09:35 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-09-20 11:07:42 -0400 |
commit | b54a5e704ff4d3585bdd8459b83d4c522d070fba (patch) | |
tree | f0b6b54b67438528f5adecf2cc16cc6e435891af /src/feature/nodelist/fmt_routerstatus.h | |
parent | 08e3b88f0774fedb41a6b1c170a710dd12a7cb90 (diff) | |
download | tor-b54a5e704ff4d3585bdd8459b83d4c522d070fba.tar.gz tor-b54a5e704ff4d3585bdd8459b83d4c522d070fba.zip |
Split most of dirserv.c into several new modules
In dirauth:
* bwauth.c reads and uses bandwidth files
* guardfraction.c reads and uses the guardfraction file
* reachability.c tests relay reachability
* recommend_pkg.c handles the recommended-packages lines.
* recv_descs.c handles fingerprint files and processing incoming
routerinfos that relays upload to us
* voteflag.c computes flag thresholds and sets those thresholds on
routerstatuses when computing votes
In control:
* fmt_serverstatus.c generates the ancient "v1 server status"
format that controllers expect.
In nodelist:
* routerstatus_fmt.c formats routerstatus entries for a consensus,
a vote, or for the controller.
Diffstat (limited to 'src/feature/nodelist/fmt_routerstatus.h')
-rw-r--r-- | src/feature/nodelist/fmt_routerstatus.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/feature/nodelist/fmt_routerstatus.h b/src/feature/nodelist/fmt_routerstatus.h new file mode 100644 index 0000000000..1a6630d266 --- /dev/null +++ b/src/feature/nodelist/fmt_routerstatus.h @@ -0,0 +1,41 @@ +/* Copyright (c) 2001 Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file fmt_routerstatus.h + * \brief Header file for fmt_routerstatus.c. + **/ + +#ifndef TOR_FMT_ROUTERSTATUS_H +#define TOR_FMT_ROUTERSTATUS_H + +/** An enum to describe what format we're generating a routerstatus line in. + */ +typedef enum { + /** For use in a v2 opinion */ + NS_V2, + /** For use in a consensus networkstatus document (ns flavor) */ + NS_V3_CONSENSUS, + /** For use in a vote networkstatus document */ + NS_V3_VOTE, + /** For passing to the controlport in response to a GETINFO request */ + NS_CONTROL_PORT, + /** For use in a consensus networkstatus document (microdesc flavor) */ + NS_V3_CONSENSUS_MICRODESC +} routerstatus_format_type_t; + +/** Maximum allowable length of a version line in a networkstatus. */ +#define MAX_V_LINE_LEN 128 + +char *routerstatus_format_entry( + const routerstatus_t *rs, + const char *version, + const char *protocols, + routerstatus_format_type_t format, + int consensus_method, + const vote_routerstatus_t *vrs); + +#endif /* !defined(TOR_FMT_ROUTERSTATUS_H) */ |