mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
Extract addr_policy_t into a new header.
This commit is contained in:
@@ -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
|
||||
@@ -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 \
|
||||
|
||||
+1
-32
@@ -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;
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user