commit f54a5cbfb6d58399ee152306fcd7e0c55292a173 Author: Nick Mathewson nickm@torproject.org Date: Sun Jul 1 14:00:37 2018 -0400
Extract addr_policy_t into a new header. --- src/or/addr_policy_st.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/or/include.am | 1 + src/or/or.h | 33 +-------------------------------- src/or/policies.c | 1 + src/or/routerparse.c | 1 + src/or/routerset.c | 1 + src/test/test_dir.c | 1 + src/test/test_policy.c | 1 + src/test/test_routerset.c | 2 +- 9 files changed, 54 insertions(+), 33 deletions(-)
diff --git a/src/or/addr_policy_st.h b/src/or/addr_policy_st.h new file mode 100644 index 000000000..be3e9d8f0 --- /dev/null +++ b/src/or/addr_policy_st.h @@ -0,0 +1,46 @@ +/* Copyright (c) 2001 Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +#ifndef TOR_ADDR_POLICY_ST_H +#define TOR_ADDR_POLICY_ST_H + +#include "lib/cc/torint.h" +#include "lib/net/address.h" + +/** What action type does an address policy indicate: accept or reject? */ +typedef enum { + ADDR_POLICY_ACCEPT=1, + ADDR_POLICY_REJECT=2, +} addr_policy_action_t; +#define addr_policy_action_bitfield_t ENUM_BF(addr_policy_action_t) + +/** A reference-counted address policy rule. */ +typedef struct addr_policy_t { + int refcnt; /**< Reference count */ + /** What to do when the policy matches.*/ + addr_policy_action_bitfield_t policy_type:2; + unsigned int is_private:1; /**< True iff this is the pseudo-address, + * "private". */ + unsigned int is_canonical:1; /**< True iff this policy is the canonical + * copy (stored in a hash table to avoid + * duplication of common policies) */ + maskbits_t maskbits; /**< Accept/reject all addresses <b>a</b> such that the + * first <b>maskbits</b> bits of <b>a</b> match + * <b>addr</b>. */ + /** Base address to accept or reject. + * + * Note that wildcards are treated + * differntly depending on address family. An AF_UNSPEC address means + * "All addresses, IPv4 or IPv6." An AF_INET address with maskbits==0 means + * "All IPv4 addresses" and an AF_INET6 address with maskbits == 0 means + * "All IPv6 addresses". + **/ + tor_addr_t addr; + uint16_t prt_min; /**< Lowest port number to accept/reject. */ + uint16_t prt_max; /**< Highest port number to accept/reject. */ +} addr_policy_t; + +#endif diff --git a/src/or/include.am b/src/or/include.am index 491341374..ce195c92e 100644 --- a/src/or/include.am +++ b/src/or/include.am @@ -180,6 +180,7 @@ endif
ORHEADERS = \ src/or/addressmap.h \ + src/or/addr_policy_st.h \ src/or/authority_cert_st.h \ src/or/auth_dirs.inc \ src/or/bridges.h \ diff --git a/src/or/or.h b/src/or/or.h index e18726cd7..1a24ef1b7 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -1152,38 +1152,7 @@ typedef struct or_connection_t or_connection_t; /** Cast a entry_connection_t subtype pointer to a connection_t **/ #define ENTRY_TO_CONN(c) (TO_CONN(ENTRY_TO_EDGE_CONN(c)))
-/** What action type does an address policy indicate: accept or reject? */ -typedef enum { - ADDR_POLICY_ACCEPT=1, - ADDR_POLICY_REJECT=2, -} addr_policy_action_t; -#define addr_policy_action_bitfield_t ENUM_BF(addr_policy_action_t) - -/** A reference-counted address policy rule. */ -typedef struct addr_policy_t { - int refcnt; /**< Reference count */ - /** What to do when the policy matches.*/ - addr_policy_action_bitfield_t policy_type:2; - unsigned int is_private:1; /**< True iff this is the pseudo-address, - * "private". */ - unsigned int is_canonical:1; /**< True iff this policy is the canonical - * copy (stored in a hash table to avoid - * duplication of common policies) */ - maskbits_t maskbits; /**< Accept/reject all addresses <b>a</b> such that the - * first <b>maskbits</b> bits of <b>a</b> match - * <b>addr</b>. */ - /** Base address to accept or reject. - * - * Note that wildcards are treated - * differntly depending on address family. An AF_UNSPEC address means - * "All addresses, IPv4 or IPv6." An AF_INET address with maskbits==0 means - * "All IPv4 addresses" and an AF_INET6 address with maskbits == 0 means - * "All IPv6 addresses". - **/ - tor_addr_t addr; - uint16_t prt_min; /**< Lowest port number to accept/reject. */ - uint16_t prt_max; /**< Highest port number to accept/reject. */ -} addr_policy_t; +typedef struct addr_policy_t addr_policy_t;
typedef struct cached_dir_t cached_dir_t;
diff --git a/src/or/policies.c b/src/or/policies.c index 78bf369cb..749b163cf 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -31,6 +31,7 @@ #include "ht.h" #include "lib/encoding/confline.h"
+#include "or/addr_policy_st.h" #include "or/dir_server_st.h" #include "or/microdesc_st.h" #include "or/node_st.h" diff --git a/src/or/routerparse.c b/src/or/routerparse.c index a095c222b..f07080a4d 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -82,6 +82,7 @@
#include "or/dirauth/dirvote.h"
+#include "or/addr_policy_st.h" #include "or/authority_cert_st.h" #include "or/document_signature_st.h" #include "or/extend_info_st.h" diff --git a/src/or/routerset.c b/src/or/routerset.c index 61b7dc121..285ef9d82 100644 --- a/src/or/routerset.c +++ b/src/or/routerset.c @@ -36,6 +36,7 @@ n * Copyright (c) 2001-2004, Roger Dingledine. #include "or/routerparse.h" #include "or/routerset.h"
+#include "or/addr_policy_st.h" #include "or/extend_info_st.h" #include "or/node_st.h" #include "or/routerinfo_st.h" diff --git a/src/test/test_dir.c b/src/test/test_dir.c index 0cdef0645..5551b5558 100644 --- a/src/test/test_dir.c +++ b/src/test/test_dir.c @@ -48,6 +48,7 @@ #include "or/voting_schedule.h" #include "lib/compress/compress.h"
+#include "or/addr_policy_st.h" #include "or/authority_cert_st.h" #include "or/document_signature_st.h" #include "or/extrainfo_st.h" diff --git a/src/test/test_policy.c b/src/test/test_policy.c index a723e82eb..a6906af41 100644 --- a/src/test/test_policy.c +++ b/src/test/test_policy.c @@ -11,6 +11,7 @@ #include "lib/encoding/confline.h" #include "test/test.h"
+#include "or/addr_policy_st.h" #include "or/node_st.h" #include "or/port_cfg_st.h" #include "or/routerinfo_st.h" diff --git a/src/test/test_routerset.c b/src/test/test_routerset.c index e64c24e89..ea8b43498 100644 --- a/src/test/test_routerset.c +++ b/src/test/test_routerset.c @@ -10,6 +10,7 @@ #include "or/policies.h" #include "or/nodelist.h"
+#include "or/addr_policy_st.h" #include "or/extend_info_st.h" #include "or/node_st.h" #include "or/routerinfo_st.h" @@ -2227,4 +2228,3 @@ struct testcase_t routerset_tests[] = { TEST_CASE(routerset_free), END_OF_TESTCASES }; -
tor-commits@lists.torproject.org