mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
Add a function to get a LongName from a routerstatus. Needed for partial bug 941 fix.
svn:r19077
This commit is contained in:
parent
49308dcc7a
commit
e591aafca4
@ -4238,7 +4238,8 @@ char *extrainfo_get_client_geoip_summary(time_t);
|
|||||||
int is_legal_nickname(const char *s);
|
int is_legal_nickname(const char *s);
|
||||||
int is_legal_nickname_or_hexdigest(const char *s);
|
int is_legal_nickname_or_hexdigest(const char *s);
|
||||||
int is_legal_hexdigest(const char *s);
|
int is_legal_hexdigest(const char *s);
|
||||||
void router_get_verbose_nickname(char *buf, routerinfo_t *router);
|
void router_get_verbose_nickname(char *buf, const routerinfo_t *router);
|
||||||
|
void routerstatus_get_verbose_nickname(char *buf, const routerstatus_t *router);
|
||||||
void router_reset_warnings(void);
|
void router_reset_warnings(void);
|
||||||
void router_reset_reachability(void);
|
void router_reset_reachability(void);
|
||||||
void router_free_all(void);
|
void router_free_all(void);
|
||||||
|
@ -1980,7 +1980,7 @@ is_legal_hexdigest(const char *s)
|
|||||||
* The router's nickname.
|
* The router's nickname.
|
||||||
**/
|
**/
|
||||||
void
|
void
|
||||||
router_get_verbose_nickname(char *buf, routerinfo_t *router)
|
router_get_verbose_nickname(char *buf, const routerinfo_t *router)
|
||||||
{
|
{
|
||||||
buf[0] = '$';
|
buf[0] = '$';
|
||||||
base16_encode(buf+1, HEX_DIGEST_LEN+1, router->cache_info.identity_digest,
|
base16_encode(buf+1, HEX_DIGEST_LEN+1, router->cache_info.identity_digest,
|
||||||
@ -1989,6 +1989,23 @@ router_get_verbose_nickname(char *buf, routerinfo_t *router)
|
|||||||
strlcpy(buf+1+HEX_DIGEST_LEN+1, router->nickname, MAX_NICKNAME_LEN+1);
|
strlcpy(buf+1+HEX_DIGEST_LEN+1, router->nickname, MAX_NICKNAME_LEN+1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Set <b>buf</b> (which must have MAX_VERBOSE_NICKNAME_LEN+1 bytes) to the
|
||||||
|
* verbose representation of the identity of <b>router</b>. The format is:
|
||||||
|
* A dollar sign.
|
||||||
|
* The upper-case hexadecimal encoding of the SHA1 hash of router's identity.
|
||||||
|
* A "=" if the router is named; a "~" if it is not.
|
||||||
|
* The router's nickname.
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
routerstatus_get_verbose_nickname(char *buf, const routerstatus_t *router)
|
||||||
|
{
|
||||||
|
buf[0] = '$';
|
||||||
|
base16_encode(buf+1, HEX_DIGEST_LEN+1, router->identity_digest,
|
||||||
|
DIGEST_LEN);
|
||||||
|
buf[1+HEX_DIGEST_LEN] = router->is_named ? '=' : '~';
|
||||||
|
strlcpy(buf+1+HEX_DIGEST_LEN+1, router->nickname, MAX_NICKNAME_LEN+1);
|
||||||
|
}
|
||||||
|
|
||||||
/** Forget that we have issued any router-related warnings, so that we'll
|
/** Forget that we have issued any router-related warnings, so that we'll
|
||||||
* warn again if we see the same errors. */
|
* warn again if we see the same errors. */
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user