diff options
Diffstat (limited to 'src/or/address_set.h')
-rw-r--r-- | src/or/address_set.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/or/address_set.h b/src/or/address_set.h new file mode 100644 index 0000000000..2efa1cb03b --- /dev/null +++ b/src/or/address_set.h @@ -0,0 +1,31 @@ +/* Copyright (c) 2018-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file address_set.h + * \brief Types to handle sets of addresses. + **/ + +#ifndef TOR_ADDRESS_SET_H +#define TOR_ADDRESS_SET_H + +#include "orconfig.h" +#include "lib/cc/torint.h" +#include "lib/container/bloomfilt.h" + +/** + * An address_set_t represents a set of tor_addr_t values. The implementation + * is probabilistic: false negatives cannot occur but false positives are + * possible. + */ +typedef struct bloomfilt_t address_set_t; +struct tor_addr_t; + +address_set_t *address_set_new(int max_addresses_guess); +#define address_set_free(set) bloomfilt_free(set) +void address_set_add(address_set_t *set, const struct tor_addr_t *addr); +void address_set_add_ipv4h(address_set_t *set, uint32_t addr); +int address_set_probably_contains(const address_set_t *set, + const struct tor_addr_t *addr); + +#endif |