mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 18:09:47 +01:00
net: add CServiceHash constructor so the caller can provide the salts
This new constructor will be useful if we just want to hash a `CService` object without the two `GetRand()` calls (in `RelayAddress()` in a subsequent commit).
This commit is contained in:
parent
97208634b9
commit
2e38a0e686
@ -562,6 +562,14 @@ public:
|
||||
class CServiceHash
|
||||
{
|
||||
public:
|
||||
CServiceHash()
|
||||
: m_salt_k0{GetRand(std::numeric_limits<uint64_t>::max())},
|
||||
m_salt_k1{GetRand(std::numeric_limits<uint64_t>::max())}
|
||||
{
|
||||
}
|
||||
|
||||
CServiceHash(uint64_t salt_k0, uint64_t salt_k1) : m_salt_k0{salt_k0}, m_salt_k1{salt_k1} {}
|
||||
|
||||
size_t operator()(const CService& a) const noexcept
|
||||
{
|
||||
CSipHasher hasher(m_salt_k0, m_salt_k1);
|
||||
@ -572,8 +580,8 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
const uint64_t m_salt_k0 = GetRand(std::numeric_limits<uint64_t>::max());
|
||||
const uint64_t m_salt_k1 = GetRand(std::numeric_limits<uint64_t>::max());
|
||||
const uint64_t m_salt_k0;
|
||||
const uint64_t m_salt_k1;
|
||||
};
|
||||
|
||||
#endif // BITCOIN_NETADDRESS_H
|
||||
|
@ -84,6 +84,8 @@ FUZZ_TARGET(netaddress)
|
||||
(void)service.ToString();
|
||||
(void)service.ToStringIPPort();
|
||||
(void)service.ToStringPort();
|
||||
(void)CServiceHash()(service);
|
||||
(void)CServiceHash(0, 0)(service);
|
||||
|
||||
const CNetAddr other_net_addr = ConsumeNetAddr(fuzzed_data_provider);
|
||||
(void)net_addr.GetReachabilityFrom(&other_net_addr);
|
||||
|
Loading…
Reference in New Issue
Block a user