diff options
author | David Goulet <dgoulet@torproject.org> | 2018-02-08 16:56:21 -0500 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2018-02-08 16:56:21 -0500 |
commit | 112638921b479f09bb473952c1870b27a0867971 (patch) | |
tree | 3d457ec6311ddbbc16f0c55cf5f68b9a78eeac53 /src/common/address_set.h | |
parent | 22a5d3dd2ab793336e911d3aceb8cacd278e0f48 (diff) | |
parent | a445327b80478c72093d8f1b0e205a279318f651 (diff) | |
download | tor-112638921b479f09bb473952c1870b27a0867971.tar.gz tor-112638921b479f09bb473952c1870b27a0867971.zip |
Merge branch 'ticket25183_029_01' into ticket24902_029_05
Diffstat (limited to 'src/common/address_set.h')
-rw-r--r-- | src/common/address_set.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/common/address_set.h b/src/common/address_set.h new file mode 100644 index 0000000000..aedf17fc66 --- /dev/null +++ b/src/common/address_set.h @@ -0,0 +1,35 @@ +/* Copyright (c) 2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file addressset.h + * \brief Types to handle sets of addresses. + * + * This module was first written on a semi-emergency basis to improve the + * robustness of the anti-DoS module. As such, it's written in a pretty + * conservative way, and should be susceptible to improvement later on. + **/ + +#ifndef TOR_ADDRESS_SET_H +#define TOR_ADDRESS_SET_H + +#include "orconfig.h" +#include "torint.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 address_set_t address_set_t; +struct tor_addr_t; + +address_set_t *address_set_new(int max_addresses_guess); +void address_set_free(address_set_t *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(address_set_t *set, + const struct tor_addr_t *addr); + +#endif + |