mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
Extract cpath_build_state into its own header.
More modules use this than I had expected!
This commit is contained in:
parent
c846b0e486
commit
d51de77311
@ -35,6 +35,7 @@
|
||||
#include "networkstatus.h"
|
||||
#include "relay.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
|
@ -65,6 +65,7 @@
|
||||
#include "routerset.h"
|
||||
#include "transports.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "or_circuit_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
@ -92,6 +92,7 @@
|
||||
|
||||
#include "ht.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_reference_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "edge_connection_st.h"
|
||||
|
@ -57,6 +57,7 @@
|
||||
#include "router.h"
|
||||
#include "routerlist.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "or_circuit_st.h"
|
||||
|
@ -97,6 +97,7 @@
|
||||
#include "routerset.h"
|
||||
#include "circuitbuild.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "or_circuit_st.h"
|
||||
|
@ -82,6 +82,7 @@
|
||||
#include "shared_random_client.h"
|
||||
|
||||
#include "control_connection_st.h"
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "or_connection_st.h"
|
||||
#include "or_circuit_st.h"
|
||||
|
38
src/or/cpath_build_state_st.h
Normal file
38
src/or/cpath_build_state_st.h
Normal file
@ -0,0 +1,38 @@
|
||||
/* Copyright (c) 2001 Matej Pfajfar.
|
||||
* Copyright (c) 2001-2004, Roger Dingledine.
|
||||
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
|
||||
* Copyright (c) 2007-2017, The Tor Project, Inc. */
|
||||
/* See LICENSE for licensing information */
|
||||
|
||||
#ifndef CIRCUIT_BUILD_STATE_ST_ST_H
|
||||
#define CIRCUIT_BUILD_STATE_ST_ST_H
|
||||
|
||||
/** Information used to build a circuit. */
|
||||
struct cpath_build_state_t {
|
||||
/** Intended length of the final circuit. */
|
||||
int desired_path_len;
|
||||
/** How to extend to the planned exit node. */
|
||||
extend_info_t *chosen_exit;
|
||||
/** Whether every node in the circ must have adequate uptime. */
|
||||
unsigned int need_uptime : 1;
|
||||
/** Whether every node in the circ must have adequate capacity. */
|
||||
unsigned int need_capacity : 1;
|
||||
/** Whether the last hop was picked with exiting in mind. */
|
||||
unsigned int is_internal : 1;
|
||||
/** Did we pick this as a one-hop tunnel (not safe for other streams)?
|
||||
* These are for encrypted dir conns that exit to this router, not
|
||||
* for arbitrary exits from the circuit. */
|
||||
unsigned int onehop_tunnel : 1;
|
||||
/** The crypt_path_t to append after rendezvous: used for rendezvous. */
|
||||
crypt_path_t *pending_final_cpath;
|
||||
/** A ref-counted reference to the crypt_path_t to append after
|
||||
* rendezvous; used on the service side. */
|
||||
crypt_path_reference_t *service_pending_final_cpath_ref;
|
||||
/** How many times has building a circuit for this task failed? */
|
||||
int failure_count;
|
||||
/** At what time should we give up on this task? */
|
||||
time_t expiry_time;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "hs/cell_common.h"
|
||||
#include "hs/cell_establish_intro.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "router.h"
|
||||
#include "routerset.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
@ -206,6 +206,7 @@ ORHEADERS = \
|
||||
src/or/consdiffmgr.h \
|
||||
src/or/control_connection_st.h \
|
||||
src/or/control.h \
|
||||
src/or/cpath_build_state_st.h \
|
||||
src/or/crypt_path_st.h \
|
||||
src/or/crypt_path_reference_st.h \
|
||||
src/or/cpuworker.h \
|
||||
|
27
src/or/or.h
27
src/or/or.h
@ -2286,32 +2286,7 @@ typedef struct crypt_path_reference_t crypt_path_reference_t;
|
||||
|
||||
#define DH_KEY_LEN DH_BYTES
|
||||
|
||||
/** Information used to build a circuit. */
|
||||
typedef struct {
|
||||
/** Intended length of the final circuit. */
|
||||
int desired_path_len;
|
||||
/** How to extend to the planned exit node. */
|
||||
extend_info_t *chosen_exit;
|
||||
/** Whether every node in the circ must have adequate uptime. */
|
||||
unsigned int need_uptime : 1;
|
||||
/** Whether every node in the circ must have adequate capacity. */
|
||||
unsigned int need_capacity : 1;
|
||||
/** Whether the last hop was picked with exiting in mind. */
|
||||
unsigned int is_internal : 1;
|
||||
/** Did we pick this as a one-hop tunnel (not safe for other streams)?
|
||||
* These are for encrypted dir conns that exit to this router, not
|
||||
* for arbitrary exits from the circuit. */
|
||||
unsigned int onehop_tunnel : 1;
|
||||
/** The crypt_path_t to append after rendezvous: used for rendezvous. */
|
||||
crypt_path_t *pending_final_cpath;
|
||||
/** A ref-counted reference to the crypt_path_t to append after
|
||||
* rendezvous; used on the service side. */
|
||||
crypt_path_reference_t *service_pending_final_cpath_ref;
|
||||
/** How many times has building a circuit for this task failed? */
|
||||
int failure_count;
|
||||
/** At what time should we give up on this task? */
|
||||
time_t expiry_time;
|
||||
} cpath_build_state_t;
|
||||
typedef struct cpath_build_state_t cpath_build_state_t;
|
||||
|
||||
/** "magic" value for an origin_circuit_t */
|
||||
#define ORIGIN_CIRCUIT_MAGIC 0x35315243u
|
||||
|
@ -82,6 +82,7 @@
|
||||
#include "scheduler.h"
|
||||
#include "rephist.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
#include "or_circuit_st.h"
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include "routerlist.h"
|
||||
#include "routerset.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include "routerlist.h"
|
||||
#include "routerparse.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "routerparse.h"
|
||||
#include "routerset.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "crypt_path_reference_st.h"
|
||||
#include "edge_connection_st.h"
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "circuituse.h"
|
||||
#include "channel.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "circuitbuild.h"
|
||||
#include "nodelist.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
static void
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "statefile.h"
|
||||
#include "util.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
@ -37,6 +37,7 @@
|
||||
#include "connection_edge.h"
|
||||
#include "networkstatus.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "dir_connection_st.h"
|
||||
#include "entry_connection_st.h"
|
||||
|
@ -53,6 +53,7 @@
|
||||
#include "dirauth/shared_random_state.h"
|
||||
#include "voting_schedule.h"
|
||||
|
||||
#include "cpath_build_state_st.h"
|
||||
#include "crypt_path_st.h"
|
||||
#include "origin_circuit_st.h"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user