Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Mike Perry
Tor
Commits
21155204
Commit
21155204
authored
Jul 22, 2010
by
Sebastian Hahn
Browse files
Create circuitbuild.h
parent
34dfce0d
Changes
20
Hide whitespace changes
Inline
Side-by-side
src/or/circuitbuild.c
View file @
21155204
...
...
@@ -12,6 +12,7 @@
#define CIRCUIT_PRIVATE
#include
"or.h"
#include
"circuitbuild.h"
#include
"router.h"
#include
"routerlist.h"
#include
"crypto.h"
...
...
src/or/circuitbuild.h
0 → 100644
View file @
21155204
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
* Copyright (c) 2007-2010, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file geoip.h
* \brief Header file for circuitbuild.c.
**/
#ifndef _TOR_CIRCUITBUILD_H
#define _TOR_CIRCUITBUILD_H
char
*
circuit_list_path
(
origin_circuit_t
*
circ
,
int
verbose
);
char
*
circuit_list_path_for_controller
(
origin_circuit_t
*
circ
);
void
circuit_log_path
(
int
severity
,
unsigned
int
domain
,
origin_circuit_t
*
circ
);
void
circuit_rep_hist_note_result
(
origin_circuit_t
*
circ
);
origin_circuit_t
*
origin_circuit_init
(
uint8_t
purpose
,
int
flags
);
origin_circuit_t
*
circuit_establish_circuit
(
uint8_t
purpose
,
extend_info_t
*
exit
,
int
flags
);
int
circuit_handle_first_hop
(
origin_circuit_t
*
circ
);
void
circuit_n_conn_done
(
or_connection_t
*
or_conn
,
int
status
);
int
inform_testing_reachability
(
void
);
int
circuit_send_next_onion_skin
(
origin_circuit_t
*
circ
);
void
circuit_note_clock_jumped
(
int
seconds_elapsed
);
int
circuit_extend
(
cell_t
*
cell
,
circuit_t
*
circ
);
int
circuit_init_cpath_crypto
(
crypt_path_t
*
cpath
,
const
char
*
key_data
,
int
reverse
);
int
circuit_finish_handshake
(
origin_circuit_t
*
circ
,
uint8_t
cell_type
,
const
char
*
reply
);
int
circuit_truncated
(
origin_circuit_t
*
circ
,
crypt_path_t
*
layer
);
int
onionskin_answer
(
or_circuit_t
*
circ
,
uint8_t
cell_type
,
const
char
*
payload
,
const
char
*
keys
);
int
circuit_all_predicted_ports_handled
(
time_t
now
,
int
*
need_uptime
,
int
*
need_capacity
);
int
circuit_append_new_exit
(
origin_circuit_t
*
circ
,
extend_info_t
*
info
);
int
circuit_extend_to_new_exit
(
origin_circuit_t
*
circ
,
extend_info_t
*
info
);
void
onion_append_to_cpath
(
crypt_path_t
**
head_ptr
,
crypt_path_t
*
new_hop
);
extend_info_t
*
extend_info_alloc
(
const
char
*
nickname
,
const
char
*
digest
,
crypto_pk_env_t
*
onion_key
,
const
tor_addr_t
*
addr
,
uint16_t
port
);
extend_info_t
*
extend_info_from_router
(
routerinfo_t
*
r
);
extend_info_t
*
extend_info_dup
(
extend_info_t
*
info
);
void
extend_info_free
(
extend_info_t
*
info
);
routerinfo_t
*
build_state_get_exit_router
(
cpath_build_state_t
*
state
);
const
char
*
build_state_get_exit_nickname
(
cpath_build_state_t
*
state
);
void
entry_guards_compute_status
(
void
);
int
entry_guard_register_connect_status
(
const
char
*
digest
,
int
succeeded
,
int
mark_relay_status
,
time_t
now
);
void
entry_nodes_should_be_added
(
void
);
int
entry_list_is_constrained
(
or_options_t
*
options
);
routerinfo_t
*
choose_random_entry
(
cpath_build_state_t
*
state
);
int
entry_guards_parse_state
(
or_state_t
*
state
,
int
set
,
char
**
msg
);
void
entry_guards_update_state
(
or_state_t
*
state
);
int
getinfo_helper_entry_guards
(
control_connection_t
*
conn
,
const
char
*
question
,
char
**
answer
,
const
char
**
errmsg
);
void
clear_bridge_list
(
void
);
int
routerinfo_is_a_configured_bridge
(
routerinfo_t
*
ri
);
void
learned_router_identity
(
tor_addr_t
*
addr
,
uint16_t
port
,
const
char
*
digest
);
void
bridge_add_from_config
(
const
tor_addr_t
*
addr
,
uint16_t
port
,
char
*
digest
);
void
retry_bridge_descriptor_fetch_directly
(
const
char
*
digest
);
void
fetch_bridge_descriptors
(
time_t
now
);
void
learned_bridge_descriptor
(
routerinfo_t
*
ri
,
int
from_cache
);
int
any_bridge_descriptors_known
(
void
);
int
any_pending_bridge_descriptor_fetches
(
void
);
int
bridges_known_but_down
(
void
);
void
bridges_retry_all
(
void
);
void
entry_guards_free_all
(
void
);
extern
circuit_build_times_t
circ_times
;
void
circuit_build_times_update_state
(
circuit_build_times_t
*
cbt
,
or_state_t
*
state
);
int
circuit_build_times_parse_state
(
circuit_build_times_t
*
cbt
,
or_state_t
*
state
,
char
**
msg
);
void
circuit_build_times_count_timeout
(
circuit_build_times_t
*
cbt
,
int
did_onehop
);
int
circuit_build_times_count_close
(
circuit_build_times_t
*
cbt
,
int
did_onehop
,
time_t
start_time
);
void
circuit_build_times_set_timeout
(
circuit_build_times_t
*
cbt
);
int
circuit_build_times_add_time
(
circuit_build_times_t
*
cbt
,
build_time_t
time
);
int
circuit_build_times_needs_circuits
(
circuit_build_times_t
*
cbt
);
int
circuit_build_times_needs_circuits_now
(
circuit_build_times_t
*
cbt
);
void
circuit_build_times_init
(
circuit_build_times_t
*
cbt
);
void
circuit_build_times_new_consensus_params
(
circuit_build_times_t
*
cbt
,
networkstatus_t
*
ns
);
double
circuit_build_times_timeout_rate
(
const
circuit_build_times_t
*
cbt
);
double
circuit_build_times_close_rate
(
const
circuit_build_times_t
*
cbt
);
#ifdef CIRCUIT_PRIVATE
double
circuit_build_times_calculate_timeout
(
circuit_build_times_t
*
cbt
,
double
quantile
);
build_time_t
circuit_build_times_generate_sample
(
circuit_build_times_t
*
cbt
,
double
q_lo
,
double
q_hi
);
void
circuit_build_times_initial_alpha
(
circuit_build_times_t
*
cbt
,
double
quantile
,
double
time_ms
);
int
circuit_build_times_update_alpha
(
circuit_build_times_t
*
cbt
);
double
circuit_build_times_cdf
(
circuit_build_times_t
*
cbt
,
double
x
);
void
circuit_build_times_add_timeout_worker
(
circuit_build_times_t
*
cbt
,
double
quantile_cutoff
);
void
circuitbuild_running_unit_tests
(
void
);
void
circuit_build_times_reset
(
circuit_build_times_t
*
cbt
);
/* Network liveness functions */
int
circuit_build_times_network_check_changed
(
circuit_build_times_t
*
cbt
);
#endif
/* Network liveness functions */
void
circuit_build_times_network_is_live
(
circuit_build_times_t
*
cbt
);
int
circuit_build_times_network_check_live
(
circuit_build_times_t
*
cbt
);
void
circuit_build_times_network_circ_success
(
circuit_build_times_t
*
cbt
);
#endif
src/or/circuitlist.c
View file @
21155204
...
...
@@ -10,6 +10,7 @@
**/
#include
"or.h"
#include
"circuitbuild.h"
#include
"rendclient.h"
#include
"rendcommon.h"
#include
"routerlist.h"
...
...
src/or/circuituse.c
View file @
21155204
...
...
@@ -10,6 +10,7 @@
**/
#include
"or.h"
#include
"circuitbuild.h"
#include
"rendclient.h"
#include
"rendcommon.h"
#include
"rendservice.h"
...
...
src/or/command.c
View file @
21155204
...
...
@@ -16,6 +16,7 @@
*/
#include
"or.h"
#include
"circuitbuild.h"
#include
"router.h"
#include
"routerlist.h"
...
...
src/or/config.c
View file @
21155204
...
...
@@ -12,6 +12,7 @@
#define CONFIG_PRIVATE
#include
"or.h"
#include
"circuitbuild.h"
#include
"geoip.h"
#include
"rendclient.h"
#include
"rendservice.h"
...
...
src/or/connection.c
View file @
21155204
...
...
@@ -12,6 +12,7 @@
#include
"or.h"
#include
"buffers.h"
#include
"circuitbuild.h"
#include
"dnsserv.h"
#include
"geoip.h"
#include
"rendclient.h"
...
...
src/or/connection_or.c
View file @
21155204
...
...
@@ -12,6 +12,7 @@
#include
"or.h"
#include
"buffers.h"
#include
"circuitbuild.h"
#include
"geoip.h"
#include
"router.h"
#include
"routerlist.h"
...
...
src/or/control.c
View file @
21155204
...
...
@@ -12,6 +12,7 @@
#include
"or.h"
#include
"buffers.h"
#include
"circuitbuild.h"
#include
"dnsserv.h"
#include
"geoip.h"
#include
"router.h"
...
...
src/or/cpuworker.c
View file @
21155204
...
...
@@ -14,6 +14,7 @@
#include
"or.h"
#include
"buffers.h"
#include
"circuitbuild.h"
#include
"router.h"
/** The maximum number of cpuworker processes we will keep around. */
...
...
src/or/directory.c
View file @
21155204
...
...
@@ -5,6 +5,7 @@
#include
"or.h"
#include
"buffers.h"
#include
"circuitbuild.h"
#include
"geoip.h"
#include
"rendclient.h"
#include
"rendcommon.h"
...
...
src/or/main.c
View file @
21155204
...
...
@@ -13,6 +13,7 @@
#define MAIN_PRIVATE
#include
"or.h"
#include
"buffers.h"
#include
"circuitbuild.h"
#include
"dnsserv.h"
#include
"geoip.h"
#include
"rendclient.h"
...
...
src/or/networkstatus.c
View file @
21155204
...
...
@@ -11,6 +11,7 @@
*/
#include
"or.h"
#include
"circuitbuild.h"
#include
"router.h"
#include
"routerlist.h"
...
...
src/or/or.h
View file @
21155204
...
...
@@ -2916,72 +2916,7 @@ struct socks_request_t {
/** How many hops does a general-purpose circuit have by default? */
#define DEFAULT_ROUTE_LEN 3
char
*
circuit_list_path
(
origin_circuit_t
*
circ
,
int
verbose
);
char
*
circuit_list_path_for_controller
(
origin_circuit_t
*
circ
);
void
circuit_log_path
(
int
severity
,
unsigned
int
domain
,
origin_circuit_t
*
circ
);
void
circuit_rep_hist_note_result
(
origin_circuit_t
*
circ
);
origin_circuit_t
*
origin_circuit_init
(
uint8_t
purpose
,
int
flags
);
origin_circuit_t
*
circuit_establish_circuit
(
uint8_t
purpose
,
extend_info_t
*
exit
,
int
flags
);
int
circuit_handle_first_hop
(
origin_circuit_t
*
circ
);
void
circuit_n_conn_done
(
or_connection_t
*
or_conn
,
int
status
);
int
inform_testing_reachability
(
void
);
int
circuit_send_next_onion_skin
(
origin_circuit_t
*
circ
);
void
circuit_note_clock_jumped
(
int
seconds_elapsed
);
int
circuit_extend
(
cell_t
*
cell
,
circuit_t
*
circ
);
int
circuit_init_cpath_crypto
(
crypt_path_t
*
cpath
,
const
char
*
key_data
,
int
reverse
);
int
circuit_finish_handshake
(
origin_circuit_t
*
circ
,
uint8_t
cell_type
,
const
char
*
reply
);
int
circuit_truncated
(
origin_circuit_t
*
circ
,
crypt_path_t
*
layer
);
int
onionskin_answer
(
or_circuit_t
*
circ
,
uint8_t
cell_type
,
const
char
*
payload
,
const
char
*
keys
);
int
circuit_all_predicted_ports_handled
(
time_t
now
,
int
*
need_uptime
,
int
*
need_capacity
);
int
circuit_append_new_exit
(
origin_circuit_t
*
circ
,
extend_info_t
*
info
);
int
circuit_extend_to_new_exit
(
origin_circuit_t
*
circ
,
extend_info_t
*
info
);
void
onion_append_to_cpath
(
crypt_path_t
**
head_ptr
,
crypt_path_t
*
new_hop
);
extend_info_t
*
extend_info_alloc
(
const
char
*
nickname
,
const
char
*
digest
,
crypto_pk_env_t
*
onion_key
,
const
tor_addr_t
*
addr
,
uint16_t
port
);
extend_info_t
*
extend_info_from_router
(
routerinfo_t
*
r
);
extend_info_t
*
extend_info_dup
(
extend_info_t
*
info
);
void
extend_info_free
(
extend_info_t
*
info
);
routerinfo_t
*
build_state_get_exit_router
(
cpath_build_state_t
*
state
);
const
char
*
build_state_get_exit_nickname
(
cpath_build_state_t
*
state
);
void
entry_guards_compute_status
(
void
);
int
entry_guard_register_connect_status
(
const
char
*
digest
,
int
succeeded
,
int
mark_relay_status
,
time_t
now
);
void
entry_nodes_should_be_added
(
void
);
int
entry_list_is_constrained
(
or_options_t
*
options
);
routerinfo_t
*
choose_random_entry
(
cpath_build_state_t
*
state
);
int
entry_guards_parse_state
(
or_state_t
*
state
,
int
set
,
char
**
msg
);
void
entry_guards_update_state
(
or_state_t
*
state
);
int
getinfo_helper_entry_guards
(
control_connection_t
*
conn
,
const
char
*
question
,
char
**
answer
,
const
char
**
errmsg
);
void
clear_bridge_list
(
void
);
int
routerinfo_is_a_configured_bridge
(
routerinfo_t
*
ri
);
void
learned_router_identity
(
tor_addr_t
*
addr
,
uint16_t
port
,
const
char
*
digest
);
void
bridge_add_from_config
(
const
tor_addr_t
*
addr
,
uint16_t
port
,
char
*
digest
);
void
retry_bridge_descriptor_fetch_directly
(
const
char
*
digest
);
void
fetch_bridge_descriptors
(
time_t
now
);
void
learned_bridge_descriptor
(
routerinfo_t
*
ri
,
int
from_cache
);
int
any_bridge_descriptors_known
(
void
);
int
any_pending_bridge_descriptor_fetches
(
void
);
int
bridges_known_but_down
(
void
);
void
bridges_retry_all
(
void
);
void
entry_guards_free_all
(
void
);
/* Circuit Build Timeout "public" functions and structures. */
/* Circuit Build Timeout "public" structures. */
/** Total size of the circuit timeout history to accumulate.
* 1000 is approx 2.5 days worth of continual-use circuits. */
...
...
@@ -3120,49 +3055,6 @@ typedef struct {
double
close_ms
;
}
circuit_build_times_t
;
extern
circuit_build_times_t
circ_times
;
void
circuit_build_times_update_state
(
circuit_build_times_t
*
cbt
,
or_state_t
*
state
);
int
circuit_build_times_parse_state
(
circuit_build_times_t
*
cbt
,
or_state_t
*
state
,
char
**
msg
);
void
circuit_build_times_count_timeout
(
circuit_build_times_t
*
cbt
,
int
did_onehop
);
int
circuit_build_times_count_close
(
circuit_build_times_t
*
cbt
,
int
did_onehop
,
time_t
start_time
);
void
circuit_build_times_set_timeout
(
circuit_build_times_t
*
cbt
);
int
circuit_build_times_add_time
(
circuit_build_times_t
*
cbt
,
build_time_t
time
);
int
circuit_build_times_needs_circuits
(
circuit_build_times_t
*
cbt
);
int
circuit_build_times_needs_circuits_now
(
circuit_build_times_t
*
cbt
);
void
circuit_build_times_init
(
circuit_build_times_t
*
cbt
);
void
circuit_build_times_new_consensus_params
(
circuit_build_times_t
*
cbt
,
networkstatus_t
*
ns
);
double
circuit_build_times_timeout_rate
(
const
circuit_build_times_t
*
cbt
);
double
circuit_build_times_close_rate
(
const
circuit_build_times_t
*
cbt
);
#ifdef CIRCUIT_PRIVATE
double
circuit_build_times_calculate_timeout
(
circuit_build_times_t
*
cbt
,
double
quantile
);
build_time_t
circuit_build_times_generate_sample
(
circuit_build_times_t
*
cbt
,
double
q_lo
,
double
q_hi
);
void
circuit_build_times_initial_alpha
(
circuit_build_times_t
*
cbt
,
double
quantile
,
double
time_ms
);
int
circuit_build_times_update_alpha
(
circuit_build_times_t
*
cbt
);
double
circuit_build_times_cdf
(
circuit_build_times_t
*
cbt
,
double
x
);
void
circuit_build_times_add_timeout_worker
(
circuit_build_times_t
*
cbt
,
double
quantile_cutoff
);
void
circuitbuild_running_unit_tests
(
void
);
void
circuit_build_times_reset
(
circuit_build_times_t
*
cbt
);
/* Network liveness functions */
int
circuit_build_times_network_check_changed
(
circuit_build_times_t
*
cbt
);
#endif
/* Network liveness functions */
void
circuit_build_times_network_is_live
(
circuit_build_times_t
*
cbt
);
int
circuit_build_times_network_check_live
(
circuit_build_times_t
*
cbt
);
void
circuit_build_times_network_circ_success
(
circuit_build_times_t
*
cbt
);
/********************************* circuitlist.c ***********************/
circuit_t
*
_circuit_get_global_list
(
void
);
...
...
src/or/relay.c
View file @
21155204
...
...
@@ -13,6 +13,7 @@
#include
<math.h>
#include
"or.h"
#include
"buffers.h"
#include
"circuitbuild.h"
#include
"geoip.h"
#include
"mempool.h"
#include
"rendcommon.h"
...
...
src/or/rendclient.c
View file @
21155204
...
...
@@ -8,6 +8,7 @@
**/
#include
"or.h"
#include
"circuitbuild.h"
#include
"rendclient.h"
#include
"rendcommon.h"
#include
"routerlist.h"
...
...
src/or/rendcommon.c
View file @
21155204
...
...
@@ -9,6 +9,7 @@
**/
#include
"or.h"
#include
"circuitbuild.h"
#include
"rendclient.h"
#include
"rendcommon.h"
#include
"rendservice.h"
...
...
src/or/rendservice.c
View file @
21155204
...
...
@@ -8,6 +8,7 @@
**/
#include
"or.h"
#include
"circuitbuild.h"
#include
"rendclient.h"
#include
"rendcommon.h"
#include
"rendservice.h"
...
...
src/or/routerlist.c
View file @
21155204
...
...
@@ -12,6 +12,7 @@
**/
#include
"or.h"
#include
"circuitbuild.h"
#include
"geoip.h"
#include
"rendcommon.h"
#include
"rendservice.h"
...
...
src/test/test.c
View file @
21155204
...
...
@@ -43,7 +43,8 @@ long int lround(double x);
double
fabs
(
double
x
);
#include
"or.h"
#include
"buffers.c"
#include
"buffers.h"
#include
"circuitbuild.h"
#include
"geoip.h"
#include
"rendcommon.h"
#include
"test.h"
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment