Commit f54a5cbf authored by Nick Mathewson's avatar Nick Mathewson 🥔
Browse files

Extract addr_policy_t into a new header.

parent 6da0311d
Loading
Loading
Loading
Loading
+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
+1 −0
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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;

+1 −0
Original line number Diff line number Diff line
@@ -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"
+1 −0
Original line number Diff line number Diff line
@@ -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