mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
prop224: Helper to dup a link_specifier_t object
Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
@@ -541,6 +541,24 @@ hs_build_address(const ed25519_public_key_t *key, uint8_t version,
|
||||
tor_assert(hs_address_is_valid(addr_out));
|
||||
}
|
||||
|
||||
/* Return a newly allocated copy of lspec. */
|
||||
link_specifier_t *
|
||||
hs_link_specifier_dup(const link_specifier_t *lspec)
|
||||
{
|
||||
link_specifier_t *dup = link_specifier_new();
|
||||
memcpy(dup, lspec, sizeof(*dup));
|
||||
/* The unrecognized field is a dynamic array so make sure to copy its
|
||||
* content and not the pointer. */
|
||||
link_specifier_setlen_un_unrecognized(
|
||||
dup, link_specifier_getlen_un_unrecognized(lspec));
|
||||
if (link_specifier_getlen_un_unrecognized(dup)) {
|
||||
memcpy(link_specifier_getarray_un_unrecognized(dup),
|
||||
link_specifier_getconstarray_un_unrecognized(lspec),
|
||||
link_specifier_getlen_un_unrecognized(dup));
|
||||
}
|
||||
return dup;
|
||||
}
|
||||
|
||||
/* Initialize the entire HS subsytem. This is called in tor_init() before any
|
||||
* torrc options are loaded. Only for >= v3. */
|
||||
void
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
|
||||
#include "or.h"
|
||||
|
||||
/* Trunnel */
|
||||
#include "ed25519_cert.h"
|
||||
|
||||
/* Protocol version 2. Use this instead of hardcoding "2" in the code base,
|
||||
* this adds a clearer semantic to the value when used. */
|
||||
#define HS_VERSION_TWO 2
|
||||
@@ -113,6 +116,8 @@ const uint8_t *rend_data_get_pk_digest(const rend_data_t *rend_data,
|
||||
|
||||
uint64_t hs_get_next_time_period_num(time_t now);
|
||||
|
||||
link_specifier_t *hs_link_specifier_dup(const link_specifier_t *lspec);
|
||||
|
||||
#ifdef HS_COMMON_PRIVATE
|
||||
|
||||
#ifdef TOR_UNIT_TESTS
|
||||
|
||||
Reference in New Issue
Block a user