tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

describe.h (1988B)


      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-2021, The Tor Project, Inc. */
      5 /* See LICENSE for licensing information */
      6 
      7 /**
      8 * \file describe.h
      9 * \brief Header file for describe.c.
     10 **/
     11 
     12 #ifndef TOR_DESCRIBE_H
     13 #define TOR_DESCRIBE_H
     14 
     15 struct extend_info_t;
     16 struct node_t;
     17 struct routerinfo_t;
     18 struct routerstatus_t;
     19 
     20 const char *extend_info_describe(const struct extend_info_t *ei);
     21 const char *node_describe(const struct node_t *node);
     22 const char *router_describe(const struct routerinfo_t *ri);
     23 const char *routerstatus_describe(const struct routerstatus_t *ri);
     24 
     25 void router_get_verbose_nickname(char *buf, const routerinfo_t *router);
     26 
     27 #if defined(DESCRIBE_PRIVATE) || defined(TOR_UNIT_TESTS)
     28 
     29 /**
     30 * Longest allowed output for an IPv4 address "255.255.255.255", with NO
     31 * terminating NUL.
     32 */
     33 #define IPV4_BUF_LEN_NO_NUL 15
     34 
     35 /**
     36 * Longest allowed output of format_node_description, plus 1 character for
     37 * NUL.  This allows space for:
     38 * "$FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF~xxxxxxxxxxxxxxxxxxx "
     39 * "[+++++++++++++++++++++++++++++++++++++++++++] at"
     40 * " 255.255.255.255 and [ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255]"
     41 * plus a terminating NUL.
     42 */
     43 #define NODE_DESC_BUF_LEN \
     44  (MAX_VERBOSE_NICKNAME_LEN+4 \
     45   + ED25519_BASE64_LEN+3 \
     46   + IPV4_BUF_LEN_NO_NUL+5 \
     47   + TOR_ADDR_BUF_LEN)
     48 
     49 #endif /* defined(DESCRIBE_PRIVATE) || defined(TOR_UNIT_TESTS) */
     50 
     51 #ifdef TOR_UNIT_TESTS
     52 struct ed25519_public_key_t;
     53 
     54 STATIC const char *format_node_description(char *buf,
     55                              const char *rsa_id_digest,
     56                              const struct ed25519_public_key_t *ed25519_id,
     57                              const char *nickname,
     58                              const tor_addr_t *ipv4_addr,
     59                              const tor_addr_t *ipv6_addr);
     60 
     61 #endif /* defined(TOR_UNIT_TESTS) */
     62 
     63 #endif /* !defined(TOR_DESCRIBE_H) */