mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-13 14:43:46 +01:00
a3e0a87d95
We previously used FILENAME_PRIVATE identifiers mostly for identifiers exposed only to the unit tests... but also for identifiers exposed to the benchmarker, and sometimes for identifiers exposed to a similar module, and occasionally for no really good reason at all. Now, we use FILENAME_PRIVATE identifiers for identifiers shared by Tor and the unit tests. They should be defined static when we aren't building the unit test, and globally visible otherwise. (The STATIC macro will keep us honest here.) For identifiers used only by the unit tests and never by Tor at all, on the other hand, we wrap them in #ifdef TOR_UNIT_TESTS. This is not the motivating use case for the split test/non-test build system; it's just a test example to see how it works, and to take a chance to clean up the code a little.
67 lines
2.9 KiB
C
67 lines
2.9 KiB
C
/* Copyright (c) 2001 Matej Pfajfar.
|
|
* Copyright (c) 2001-2004, Roger Dingledine.
|
|
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
|
|
* Copyright (c) 2007-2013, The Tor Project, Inc. */
|
|
/* See LICENSE for licensing information */
|
|
|
|
/**
|
|
* \file circuitstats.h
|
|
* \brief Header file for circuitstats.c
|
|
**/
|
|
|
|
#ifndef TOR_CIRCUITSTATS_H
|
|
#define TOR_CIRCUITSTATS_H
|
|
|
|
extern circuit_build_times_t circ_times;
|
|
|
|
int circuit_build_times_disabled(void);
|
|
int circuit_build_times_enough_to_compute(circuit_build_times_t *cbt);
|
|
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);
|
|
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_free_timeouts(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 CIRCUITSTATS_PRIVATE
|
|
STATIC double circuit_build_times_calculate_timeout(circuit_build_times_t *cbt,
|
|
double quantile);
|
|
STATIC int circuit_build_times_update_alpha(circuit_build_times_t *cbt);
|
|
STATIC void circuit_build_times_reset(circuit_build_times_t *cbt);
|
|
|
|
/* Network liveness functions */
|
|
STATIC int circuit_build_times_network_check_changed(
|
|
circuit_build_times_t *cbt);
|
|
#endif
|
|
|
|
#ifdef TOR_UNIT_TESTS
|
|
build_time_t circuit_build_times_generate_sample(circuit_build_times_t *cbt,
|
|
double q_lo, double q_hi);
|
|
double circuit_build_times_cdf(circuit_build_times_t *cbt, double x);
|
|
void circuit_build_times_initial_alpha(circuit_build_times_t *cbt,
|
|
double quantile, double time_ms);
|
|
void circuitbuild_running_unit_tests(void);
|
|
#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
|
|
|