ns_parse.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* Copyright (c) 2001 Matej Pfajfar.
  2. * Copyright (c) 2001-2004, Roger Dingledine.
  3. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
  4. * Copyright (c) 2007-2019, The Tor Project, Inc. */
  5. /* See LICENSE for licensing information */
  6. /**
  7. * \file ns_parse.h
  8. * \brief Header file for ns_parse.c.
  9. **/
  10. #ifndef TOR_NS_PARSE_H
  11. #define TOR_NS_PARSE_H
  12. int router_get_networkstatus_v3_hashes(const char *s, size_t len,
  13. common_digests_t *digests);
  14. int router_get_networkstatus_v3_signed_boundaries(const char *s, size_t len,
  15. const char **start_out,
  16. const char **end_out);
  17. int router_get_networkstatus_v3_sha3_as_signed(uint8_t *digest_out,
  18. const char *s, size_t len);
  19. int compare_vote_routerstatus_entries(const void **_a, const void **_b);
  20. int networkstatus_verify_bw_weights(networkstatus_t *ns, int);
  21. enum networkstatus_type_t;
  22. networkstatus_t *networkstatus_parse_vote_from_string(const char *s,
  23. size_t len,
  24. const char **eos_out,
  25. enum networkstatus_type_t ns_type);
  26. #ifdef NS_PARSE_PRIVATE
  27. STATIC int routerstatus_parse_guardfraction(const char *guardfraction_str,
  28. networkstatus_t *vote,
  29. vote_routerstatus_t *vote_rs,
  30. routerstatus_t *rs);
  31. struct memarea_t;
  32. STATIC routerstatus_t *routerstatus_parse_entry_from_string(
  33. struct memarea_t *area,
  34. const char **s, const char *eos,
  35. smartlist_t *tokens,
  36. networkstatus_t *vote,
  37. vote_routerstatus_t *vote_rs,
  38. int consensus_method,
  39. consensus_flavor_t flav);
  40. #endif /* defined(NS_PARSE_PRIVATE) */
  41. #endif /* !defined(TOR_NS_PARSE_H) */