Loading src/or/addr_policy_st.h 0 → 100644 +46 −0 Original line number Diff line number Diff line /* 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 src/or/include.am +1 −0 Original line number Diff line number Diff line Loading @@ -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 \ Loading src/or/or.h +1 −32 Original line number Diff line number Diff line Loading @@ -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; Loading src/or/policies.c +1 −0 Original line number Diff line number Diff line Loading @@ -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" Loading src/or/routerparse.c +1 −0 Original line number Diff line number Diff line Loading @@ -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" Loading Loading
src/or/addr_policy_st.h 0 → 100644 +46 −0 Original line number Diff line number Diff line /* 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
src/or/include.am +1 −0 Original line number Diff line number Diff line Loading @@ -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 \ Loading
src/or/or.h +1 −32 Original line number Diff line number Diff line Loading @@ -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; Loading
src/or/policies.c +1 −0 Original line number Diff line number Diff line Loading @@ -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" Loading
src/or/routerparse.c +1 −0 Original line number Diff line number Diff line Loading @@ -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" Loading