mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
Fix everything that previously referred to src/or
This commit is contained in:
parent
5f51c2de8b
commit
f720a5a439
1156
Doxyfile.in
1156
Doxyfile.in
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@ dnl See LICENSE for licensing information
|
|||||||
|
|
||||||
AC_PREREQ([2.63])
|
AC_PREREQ([2.63])
|
||||||
AC_INIT([tor],[0.3.5.0-alpha-dev])
|
AC_INIT([tor],[0.3.5.0-alpha-dev])
|
||||||
AC_CONFIG_SRCDIR([src/or/main.c])
|
AC_CONFIG_SRCDIR([src/app/main/tor_main.c])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
# "foreign" means we don't follow GNU package layout standards
|
# "foreign" means we don't follow GNU package layout standards
|
||||||
|
@ -12,9 +12,9 @@ Currently, there is only one module:
|
|||||||
|
|
||||||
- Directory Authority subsystem (dirauth)
|
- Directory Authority subsystem (dirauth)
|
||||||
|
|
||||||
It is located in its own directory in `src/or/dirauth/`. To disable it, one
|
It is located in its own directory in `src/feature/dirauth/`. To disable it,
|
||||||
need to pass `--disable-module-dirauth` at configure time. All modules are
|
one need to pass `--disable-module-dirauth` at configure time. All modules
|
||||||
currently enabled by default.
|
are currently enabled by default.
|
||||||
|
|
||||||
## Build System ##
|
## Build System ##
|
||||||
|
|
||||||
@ -32,10 +32,10 @@ The changes to the build system are pretty straightforward.
|
|||||||
the C code to conditionally compile things for your module. And the
|
the C code to conditionally compile things for your module. And the
|
||||||
`BUILD_MODULE_<name>` is also defined for automake files (e.g: include.am).
|
`BUILD_MODULE_<name>` is also defined for automake files (e.g: include.am).
|
||||||
|
|
||||||
3. In the `src/or/include.am` file, locate the `MODULE_DIRAUTH_SOURCES` value.
|
3. In the `src/core/include.am` file, locate the `MODULE_DIRAUTH_SOURCES`
|
||||||
You need to create your own `_SOURCES` variable for your module and then
|
value. You need to create your own `_SOURCES` variable for your module
|
||||||
conditionally add the it to `LIBTOR_A_SOURCES` if you should build the
|
and then conditionally add the it to `LIBTOR_A_SOURCES` if you should
|
||||||
module.
|
build the module.
|
||||||
|
|
||||||
It is then **very** important to add your SOURCES variable to
|
It is then **very** important to add your SOURCES variable to
|
||||||
`src_or_libtor_testing_a_SOURCES` so the tests can build it.
|
`src_or_libtor_testing_a_SOURCES` so the tests can build it.
|
||||||
@ -51,7 +51,7 @@ always build everything in order to tests everything.
|
|||||||
## Coding ##
|
## Coding ##
|
||||||
|
|
||||||
As mentioned above, a module must be isolated in its own directory (name of
|
As mentioned above, a module must be isolated in its own directory (name of
|
||||||
the module) in `src/or/`.
|
the module) in `src/feature/`.
|
||||||
|
|
||||||
There are couples of "rules" you want to follow:
|
There are couples of "rules" you want to follow:
|
||||||
|
|
||||||
@ -87,10 +87,10 @@ There are couples of "rules" you want to follow:
|
|||||||
making the code much more difficult to follow/understand.
|
making the code much more difficult to follow/understand.
|
||||||
|
|
||||||
* It is possible that you end up with code that needs to be used by the rest
|
* It is possible that you end up with code that needs to be used by the rest
|
||||||
of the code base but is still part of your module. As a good example, if you
|
of the code base but is still part of your module. As a good example, if
|
||||||
look at `src/or/shared_random_client.c`: it contains code needed by the hidden
|
you look at `src/feature/shared_random_client.c`: it contains code needed
|
||||||
service subsystem but mainly related to the shared random subsystem very
|
by the hidden service subsystem but mainly related to the shared random
|
||||||
specific to the dirauth module.
|
subsystem very specific to the dirauth module.
|
||||||
|
|
||||||
This is fine but try to keep it as lean as possible and never use the same
|
This is fine but try to keep it as lean as possible and never use the same
|
||||||
filename as the one in the module. For example, this is a bad idea and
|
filename as the one in the module. For example, this is a bad idea and
|
||||||
@ -102,7 +102,7 @@ There are couples of "rules" you want to follow:
|
|||||||
* When you include headers from the module, **always** use the full module
|
* When you include headers from the module, **always** use the full module
|
||||||
path in your statement. Example:
|
path in your statement. Example:
|
||||||
|
|
||||||
`#include "dirauth/dirvote.h"`
|
`#include "feature/dirauth/dirvote.h"`
|
||||||
|
|
||||||
The main reason is that we do **not** add the module include path by default
|
The main reason is that we do **not** add the module include path by default
|
||||||
so it needs to be specified. But also, it helps our human brain understand
|
so it needs to be specified. But also, it helps our human brain understand
|
||||||
|
@ -69,7 +69,7 @@ configure option:
|
|||||||
## Instrument Tor ##
|
## Instrument Tor ##
|
||||||
|
|
||||||
This is pretty easy. Let's say you want to add a trace event in
|
This is pretty easy. Let's say you want to add a trace event in
|
||||||
`src/or/rendcache.c`, you only have to add this include statement:
|
`src/feature/rend/rendcache.c`, you only have to add this include statement:
|
||||||
|
|
||||||
#include "trace/events.h"
|
#include "trace/events.h"
|
||||||
|
|
||||||
|
@ -12,7 +12,8 @@
|
|||||||
|
|
||||||
# To replace this list with the hard-coded fallback list (for testing), use
|
# To replace this list with the hard-coded fallback list (for testing), use
|
||||||
# a command similar to:
|
# a command similar to:
|
||||||
# cat src/or/fallback_dirs.inc | grep \" | grep -v weight | tr -d '\n' | \
|
# cat src/app/config/fallback_dirs.inc | grep \" | grep -v weight | \
|
||||||
|
# tr -d '\n' | \
|
||||||
# sed 's/"" / /g' | sed 's/""/"/g' | tr \" '\n' | grep -v '^$' \
|
# sed 's/"" / /g' | sed 's/""/"/g' | tr \" '\n' | grep -v '^$' \
|
||||||
# > scripts/maint/fallback.whitelist
|
# > scripts/maint/fallback.whitelist
|
||||||
#
|
#
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
# Usage:
|
# Usage:
|
||||||
#
|
#
|
||||||
# Regenerate the list:
|
# Regenerate the list:
|
||||||
# scripts/maint/updateFallbackDirs.py > src/or/fallback_dirs.inc 2> fallback_dirs.log
|
# scripts/maint/updateFallbackDirs.py > src/app/config/fallback_dirs.inc 2> fallback_dirs.log
|
||||||
#
|
#
|
||||||
# Check the existing list:
|
# Check the existing list:
|
||||||
# scripts/maint/updateFallbackDirs.py check_existing > fallback_dirs.inc.ok 2> fallback_dirs.log
|
# scripts/maint/updateFallbackDirs.py check_existing > fallback_dirs.inc.ok 2> fallback_dirs.log
|
||||||
# mv fallback_dirs.inc.ok src/or/fallback_dirs.inc
|
# mv fallback_dirs.inc.ok src/app/config/fallback_dirs.inc
|
||||||
#
|
#
|
||||||
# This script should be run from a stable, reliable network connection,
|
# This script should be run from a stable, reliable network connection,
|
||||||
# with no other network activity (and not over tor).
|
# with no other network activity (and not over tor).
|
||||||
@ -112,7 +112,7 @@ DOWNLOAD_MICRODESC_CONSENSUS = True
|
|||||||
# expired consensus. This makes them fail the download check.
|
# expired consensus. This makes them fail the download check.
|
||||||
# We use a tolerance of 0, so that 0.2.x series relays also fail the download
|
# We use a tolerance of 0, so that 0.2.x series relays also fail the download
|
||||||
# check if they serve an expired consensus.
|
# check if they serve an expired consensus.
|
||||||
CONSENSUS_EXPIRY_TOLERANCE = 0
|
CONSENSUS_EXPIRY_TOLERANCE = 0
|
||||||
|
|
||||||
# Output fallback name, flags, bandwidth, and ContactInfo in a C comment?
|
# Output fallback name, flags, bandwidth, and ContactInfo in a C comment?
|
||||||
OUTPUT_COMMENTS = True if OUTPUT_CANDIDATES else False
|
OUTPUT_COMMENTS = True if OUTPUT_CANDIDATES else False
|
||||||
@ -161,7 +161,7 @@ BLACKLIST_EXCLUDES_WHITELIST_ENTRIES = True
|
|||||||
|
|
||||||
WHITELIST_FILE_NAME = 'scripts/maint/fallback.whitelist'
|
WHITELIST_FILE_NAME = 'scripts/maint/fallback.whitelist'
|
||||||
BLACKLIST_FILE_NAME = 'scripts/maint/fallback.blacklist'
|
BLACKLIST_FILE_NAME = 'scripts/maint/fallback.blacklist'
|
||||||
FALLBACK_FILE_NAME = 'src/or/fallback_dirs.inc'
|
FALLBACK_FILE_NAME = 'src/app/config/fallback_dirs.inc'
|
||||||
|
|
||||||
# The number of bytes we'll read from a filter file before giving up
|
# The number of bytes we'll read from a filter file before giving up
|
||||||
MAX_LIST_FILE_SIZE = 1024 * 1024
|
MAX_LIST_FILE_SIZE = 1024 * 1024
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
dst=$1
|
dst=$1
|
||||||
|
|
||||||
for fn in src/or/*.c src/or/*/*.c src/common/*.c src/lib/*/*.c; do
|
for fn in src/core/*/*.c src/feature/*/*.c src/app/*/*.c src/lib/*/*.c; do
|
||||||
BN=`basename $fn`
|
BN=`basename $fn`
|
||||||
DN=`dirname $fn`
|
DN=`dirname $fn`
|
||||||
F=`echo $BN | sed -e 's/\.c$//;'`
|
F=`echo $BN | sed -e 's/\.c$//;'`
|
||||||
|
@ -7,11 +7,10 @@
|
|||||||
|
|
||||||
/** String describing which Tor Git repository version the source was
|
/** String describing which Tor Git repository version the source was
|
||||||
* built from. This string is generated by a bit of shell kludging in
|
* built from. This string is generated by a bit of shell kludging in
|
||||||
* src/or/include.am, and is usually right.
|
* src/core/include.am, and is usually right.
|
||||||
*/
|
*/
|
||||||
const char tor_git_revision[] =
|
const char tor_git_revision[] =
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
#include "micro-revision.i"
|
#include "micro-revision.i"
|
||||||
#endif
|
#endif
|
||||||
"";
|
"";
|
||||||
|
|
||||||
|
2
src/rust/external/external.rs
vendored
2
src/rust/external/external.rs
vendored
@ -11,7 +11,7 @@ extern "C" {
|
|||||||
) -> c_int;
|
) -> c_int;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Wrap calls to tor_version_as_new_as, defined in src/or/routerparse.c
|
/// Wrap calls to tor_version_as_new_as, defined in routerparse.c
|
||||||
pub fn c_tor_version_as_new_as(platform: &str, cutoff: &str) -> bool {
|
pub fn c_tor_version_as_new_as(platform: &str, cutoff: &str) -> bool {
|
||||||
// CHK: These functions should log a warning if an error occurs. This
|
// CHK: These functions should log a warning if an error occurs. This
|
||||||
// can be added when integration with tor's logger is added to rust
|
// can be added when integration with tor's logger is added to rust
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
//! FFI functions, only to be called from C.
|
//! FFI functions, only to be called from C.
|
||||||
//!
|
//!
|
||||||
//! Equivalent C versions of this api are in `src/or/protover.c`
|
//! Equivalent C versions of this api are in `protover.c`
|
||||||
|
|
||||||
use libc::{c_char, c_int, uint32_t};
|
use libc::{c_char, c_int, uint32_t};
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
@ -18,7 +18,7 @@ use protover::*;
|
|||||||
/// Translate C enums to Rust Proto enums, using the integer value of the C
|
/// Translate C enums to Rust Proto enums, using the integer value of the C
|
||||||
/// enum to map to its associated Rust enum.
|
/// enum to map to its associated Rust enum.
|
||||||
///
|
///
|
||||||
/// C_RUST_COUPLED: src/or/protover.h `protocol_type_t`
|
/// C_RUST_COUPLED: protover.h `protocol_type_t`
|
||||||
fn translate_to_rust(c_proto: uint32_t) -> Result<Protocol, ProtoverError> {
|
fn translate_to_rust(c_proto: uint32_t) -> Result<Protocol, ProtoverError> {
|
||||||
match c_proto {
|
match c_proto {
|
||||||
0 => Ok(Protocol::Link),
|
0 => Ok(Protocol::Link),
|
||||||
|
@ -19,13 +19,13 @@ use protoset::ProtoSet;
|
|||||||
/// Authorities should use this to decide whether to guess proto lines.
|
/// Authorities should use this to decide whether to guess proto lines.
|
||||||
///
|
///
|
||||||
/// C_RUST_COUPLED:
|
/// C_RUST_COUPLED:
|
||||||
/// src/or/protover.h `FIRST_TOR_VERSION_TO_ADVERTISE_PROTOCOLS`
|
/// protover.h `FIRST_TOR_VERSION_TO_ADVERTISE_PROTOCOLS`
|
||||||
const FIRST_TOR_VERSION_TO_ADVERTISE_PROTOCOLS: &'static str = "0.2.9.3-alpha";
|
const FIRST_TOR_VERSION_TO_ADVERTISE_PROTOCOLS: &'static str = "0.2.9.3-alpha";
|
||||||
|
|
||||||
/// The maximum number of subprotocol version numbers we will attempt to expand
|
/// The maximum number of subprotocol version numbers we will attempt to expand
|
||||||
/// before concluding that someone is trying to DoS us
|
/// before concluding that someone is trying to DoS us
|
||||||
///
|
///
|
||||||
/// C_RUST_COUPLED: src/or/protover.c `MAX_PROTOCOLS_TO_EXPAND`
|
/// C_RUST_COUPLED: protover.c `MAX_PROTOCOLS_TO_EXPAND`
|
||||||
const MAX_PROTOCOLS_TO_EXPAND: usize = (1<<16);
|
const MAX_PROTOCOLS_TO_EXPAND: usize = (1<<16);
|
||||||
|
|
||||||
/// The maximum size an `UnknownProtocol`'s name may be.
|
/// The maximum size an `UnknownProtocol`'s name may be.
|
||||||
@ -33,7 +33,7 @@ pub(crate) const MAX_PROTOCOL_NAME_LENGTH: usize = 100;
|
|||||||
|
|
||||||
/// Known subprotocols in Tor. Indicates which subprotocol a relay supports.
|
/// Known subprotocols in Tor. Indicates which subprotocol a relay supports.
|
||||||
///
|
///
|
||||||
/// C_RUST_COUPLED: src/or/protover.h `protocol_type_t`
|
/// C_RUST_COUPLED: protover.h `protocol_type_t`
|
||||||
#[derive(Clone, Hash, Eq, PartialEq, Debug)]
|
#[derive(Clone, Hash, Eq, PartialEq, Debug)]
|
||||||
pub enum Protocol {
|
pub enum Protocol {
|
||||||
Cons,
|
Cons,
|
||||||
@ -57,7 +57,7 @@ impl fmt::Display for Protocol {
|
|||||||
/// Translates a string representation of a protocol into a Proto type.
|
/// Translates a string representation of a protocol into a Proto type.
|
||||||
/// Error if the string is an unrecognized protocol name.
|
/// Error if the string is an unrecognized protocol name.
|
||||||
///
|
///
|
||||||
/// C_RUST_COUPLED: src/or/protover.c `PROTOCOL_NAMES`
|
/// C_RUST_COUPLED: protover.c `PROTOCOL_NAMES`
|
||||||
impl FromStr for Protocol {
|
impl FromStr for Protocol {
|
||||||
type Err = ProtoverError;
|
type Err = ProtoverError;
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ impl From<Protocol> for UnknownProtocol {
|
|||||||
/// Rust code can use the `&'static CStr` as a normal `&'a str` by
|
/// Rust code can use the `&'static CStr` as a normal `&'a str` by
|
||||||
/// calling `protover::get_supported_protocols`.
|
/// calling `protover::get_supported_protocols`.
|
||||||
///
|
///
|
||||||
// C_RUST_COUPLED: src/or/protover.c `protover_get_supported_protocols`
|
// C_RUST_COUPLED: protover.c `protover_get_supported_protocols`
|
||||||
pub(crate) fn get_supported_protocols_cstr() -> &'static CStr {
|
pub(crate) fn get_supported_protocols_cstr() -> &'static CStr {
|
||||||
cstr!("Cons=1-2 \
|
cstr!("Cons=1-2 \
|
||||||
Desc=1-2 \
|
Desc=1-2 \
|
||||||
@ -601,7 +601,7 @@ impl ProtoverVote {
|
|||||||
/// let vote = ProtoverVote::compute(protos, &2);
|
/// let vote = ProtoverVote::compute(protos, &2);
|
||||||
/// assert_eq!("Link=3", vote.to_string());
|
/// assert_eq!("Link=3", vote.to_string());
|
||||||
/// ```
|
/// ```
|
||||||
// C_RUST_COUPLED: /src/or/protover.c protover_compute_vote
|
// C_RUST_COUPLED: protover.c protover_compute_vote
|
||||||
pub fn compute(proto_entries: &[UnvalidatedProtoEntry], threshold: &usize) -> UnvalidatedProtoEntry {
|
pub fn compute(proto_entries: &[UnvalidatedProtoEntry], threshold: &usize) -> UnvalidatedProtoEntry {
|
||||||
let mut all_count: ProtoverVote = ProtoverVote::default();
|
let mut all_count: ProtoverVote = ProtoverVote::default();
|
||||||
let mut final_output: UnvalidatedProtoEntry = UnvalidatedProtoEntry::default();
|
let mut final_output: UnvalidatedProtoEntry = UnvalidatedProtoEntry::default();
|
||||||
|
@ -129,7 +129,7 @@ pub mod log {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// The main entry point into Tor's logger. When in non-test mode, this
|
/// The main entry point into Tor's logger. When in non-test mode, this
|
||||||
/// will link directly with `tor_log_string` in /src/or/log.c
|
/// will link directly with `tor_log_string` in torlog.c
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn tor_log_string(
|
pub fn tor_log_string(
|
||||||
severity: c_int,
|
severity: c_int,
|
||||||
|
@ -52,12 +52,12 @@ done
|
|||||||
# - if $PWD looks like a tor build directory, set it to $PWD, or
|
# - if $PWD looks like a tor build directory, set it to $PWD, or
|
||||||
# - unset $TOR_DIR, and let chutney fall back to finding tor binaries in $PATH
|
# - unset $TOR_DIR, and let chutney fall back to finding tor binaries in $PATH
|
||||||
if [ ! -d "$TOR_DIR" ]; then
|
if [ ! -d "$TOR_DIR" ]; then
|
||||||
if [ -d "$BUILDDIR/src/or" -a -d "$BUILDDIR/src/tools" ]; then
|
if [ -d "$BUILDDIR/src/core/or" -a -d "$BUILDDIR/src/tools" ]; then
|
||||||
# Choose the build directory
|
# Choose the build directory
|
||||||
# But only if it looks like one
|
# But only if it looks like one
|
||||||
$ECHO "$myname: \$TOR_DIR not set, trying \$BUILDDIR"
|
$ECHO "$myname: \$TOR_DIR not set, trying \$BUILDDIR"
|
||||||
TOR_DIR="$BUILDDIR"
|
TOR_DIR="$BUILDDIR"
|
||||||
elif [ -d "$PWD/src/or" -a -d "$PWD/src/tools" ]; then
|
elif [ -d "$PWD/src/core/or" -a -d "$PWD/src/tools" ]; then
|
||||||
# Guess the tor directory is the current directory
|
# Guess the tor directory is the current directory
|
||||||
# But only if it looks like one
|
# But only if it looks like one
|
||||||
$ECHO "$myname: \$TOR_DIR not set, trying \$PWD"
|
$ECHO "$myname: \$TOR_DIR not set, trying \$PWD"
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file test_bridges.c
|
* \file test_bridges.c
|
||||||
* \brief Unittests for code in src/or/bridges.c
|
* \brief Unittests for code in bridges.c
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#define TOR_BRIDGES_PRIVATE
|
#define TOR_BRIDGES_PRIVATE
|
||||||
@ -609,4 +609,3 @@ struct testcase_t bridges_tests[] = {
|
|||||||
B_TEST(transport_is_needed, 0),
|
B_TEST(transport_is_needed, 0),
|
||||||
END_OF_TESTCASES
|
END_OF_TESTCASES
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* \file test_router.c
|
* \file test_router.c
|
||||||
* \brief Unittests for code in src/or/router.c
|
* \brief Unittests for code in router.c
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#include "core/or/or.h"
|
#include "core/or/or.h"
|
||||||
@ -111,4 +111,3 @@ struct testcase_t router_tests[] = {
|
|||||||
ROUTER_TEST(dump_router_to_string_no_bridge_distribution_method, TT_FORK),
|
ROUTER_TEST(dump_router_to_string_no_bridge_distribution_method, TT_FORK),
|
||||||
END_OF_TESTCASES
|
END_OF_TESTCASES
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user