Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
The Tor Project
Core
Tor
Commits
6f95cdf8
Commit
6f95cdf8
authored
Feb 01, 2021
by
David Goulet
🤘
Browse files
Remove unused addr_port_set code
Signed-off-by:
David Goulet
<
dgoulet@torproject.org
>
parent
c2cee6c7
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/core/or/address_set.c
View file @
6f95cdf8
...
...
@@ -15,7 +15,6 @@
#include
"lib/net/address.h"
#include
"lib/container/bloomfilt.h"
#include
"lib/crypt_ops/crypto_rand.h"
#include
"siphash.h"
/* Wrap our hash function to have the signature that the bloom filter
* needs. */
...
...
@@ -69,77 +68,3 @@ address_set_probably_contains(const address_set_t *set,
{
return
bloomfilt_probably_contains
(
set
,
addr
);
}
/* Length of the item is an address (IPv4 or IPv6) and a 2 byte port. We use
* 16 bytes for the address here (IPv6) since we do not know which family
* the given address in the item thus in the case of IPv4, the extra bytes
* are simply zeroes to accomodate. */
#define BLOOMFILT_ADDR_PORT_ITEM_LEN (16 + sizeof(uint16_t))
/** Build an item for the bloomfilter consisting of an address and port pair.
*
* If the given address is _not_ AF_INET or AF_INET6, then the item is an
* array of 0s.
*
* Return a pointer to a static buffer containing the item. Next call to this
* function invalidates its previous content. */
static
const
uint8_t
*
build_addr_port_item
(
const
tor_addr_t
*
addr
,
const
uint16_t
port
)
{
static
uint8_t
data
[
BLOOMFILT_ADDR_PORT_ITEM_LEN
];
memset
(
data
,
0
,
sizeof
(
data
));
switch
(
tor_addr_family
(
addr
))
{
case
AF_INET
:
memcpy
(
data
,
&
addr
->
addr
.
in_addr
.
s_addr
,
4
);
break
;
case
AF_INET6
:
memcpy
(
data
,
&
addr
->
addr
.
in6_addr
.
s6_addr
,
16
);
break
;
case
AF_UNSPEC
:
/* Leave the 0. */
break
;
default:
/* LCOV_EXCL_START */
tor_fragile_assert
();
/* LCOV_EXCL_STOP */
}
memcpy
(
data
+
16
,
&
port
,
sizeof
(
port
));
return
data
;
}
/** Return a hash value for the given item that the bloomfilter will use. */
static
uint64_t
bloomfilt_addr_port_hash
(
const
struct
sipkey
*
key
,
const
void
*
item
)
{
return
siphash24
(
item
,
BLOOMFILT_ADDR_PORT_ITEM_LEN
,
key
);
}
/** Allocate and return an addr_port_set_t, suitable for holding up to
* max_address_guess distinct values. */
addr_port_set_t
*
addr_port_set_new
(
int
max_addresses_guess
)
{
uint8_t
k
[
BLOOMFILT_KEY_LEN
];
crypto_rand
((
void
*
)
k
,
sizeof
(
k
));
return
bloomfilt_new
(
max_addresses_guess
,
bloomfilt_addr_port_hash
,
k
);
}
/** Add an address and port pair to the given set. */
void
addr_port_set_add
(
addr_port_set_t
*
set
,
const
tor_addr_t
*
addr
,
uint16_t
port
)
{
bloomfilt_add
(
set
,
build_addr_port_item
(
addr
,
port
));
}
/** Return true if the given address and port pair are in the set. Of course,
* this is a bloomfilter and thus in rare occasion, a false positive happens
* thus the "probably". */
bool
addr_port_set_probably_contains
(
const
addr_port_set_t
*
set
,
const
tor_addr_t
*
addr
,
uint16_t
port
)
{
return
!!
bloomfilt_probably_contains
(
set
,
build_addr_port_item
(
addr
,
port
));
}
src/core/or/address_set.h
View file @
6f95cdf8
...
...
@@ -29,19 +29,4 @@ 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
);
/**
* An addr_port_set_t represents a set of tor_addr_t values with a uint16_t
* port value. The implementation is probabilistic: false negatives cannot
* occur but false positives are possible.
*/
typedef
struct
bloomfilt_t
addr_port_set_t
;
addr_port_set_t
*
addr_port_set_new
(
int
max_addresses_guess
);
#define addr_port_set_free(s) bloomfilt_free(s)
void
addr_port_set_add
(
addr_port_set_t
*
set
,
const
struct
tor_addr_t
*
addr
,
uint16_t
port
);
bool
addr_port_set_probably_contains
(
const
addr_port_set_t
*
set
,
const
struct
tor_addr_t
*
addr
,
uint16_t
port
);
#endif
/* !defined(TOR_ADDRESS_SET_H) */
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment