From e69dc22f4ed323ed4e4c1537c48b70ca0007773a Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Wed, 21 Jul 2010 12:26:18 +0200 Subject: Split headers for dnsserv.c functions out of or.h The next series of commits begins addressing the issue that we're currently including the complete or.h file in all of our source files. To change that, we're splitting function definitions into new header files (one header file per source file). --- src/or/dnsserv.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/or/dnsserv.c') diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c index 2e5301eae..390ef2f7b 100644 --- a/src/or/dnsserv.c +++ b/src/or/dnsserv.c @@ -9,6 +9,7 @@ **/ #include "or.h" +#include "dnsserv.h" #ifdef HAVE_EVENT2_DNS_H #include #include -- cgit v1.2.3 From c4f8f1316e18e5eeb6efc14659a66f3d6feb0adf Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Thu, 22 Jul 2010 10:22:51 +0200 Subject: Create config.h --- src/or/buffers.c | 1 + src/or/circuitbuild.c | 1 + src/or/circuitlist.c | 1 + src/or/circuituse.c | 1 + src/or/command.c | 1 + src/or/config.c | 1 + src/or/config.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++++ src/or/connection.c | 1 + src/or/connection_edge.c | 1 + src/or/connection_or.c | 1 + src/or/control.c | 1 + src/or/cpuworker.c | 1 + src/or/directory.c | 1 + src/or/dirserv.c | 1 + src/or/dirvote.c | 1 + src/or/dns.c | 1 + src/or/dnsserv.c | 1 + src/or/geoip.c | 1 + src/or/hibernate.c | 1 + src/or/main.c | 1 + src/or/microdesc.c | 1 + src/or/networkstatus.c | 1 + src/or/onion.c | 1 + src/or/or.h | 62 -------------------------------------- src/or/policies.c | 1 + src/or/reasons.c | 1 + src/or/relay.c | 1 + src/or/rendclient.c | 1 + src/or/rendcommon.c | 1 + src/or/rendmid.c | 1 + src/or/rendservice.c | 1 + src/or/rephist.c | 1 + src/or/router.c | 1 + src/or/routerlist.c | 1 + src/or/routerparse.c | 1 + src/test/test.c | 1 + src/test/test_util.c | 1 + 37 files changed, 113 insertions(+), 62 deletions(-) create mode 100644 src/or/config.h (limited to 'src/or/dnsserv.c') diff --git a/src/or/buffers.c b/src/or/buffers.c index 807ca5076..2c1ba78ec 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -13,6 +13,7 @@ #define BUFFERS_PRIVATE #include "or.h" #include "buffers.h" +#include "config.h" #include "../common/util.h" #include "../common/torlog.h" #ifdef HAVE_UNISTD_H diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 9d54dbec5..041aed3a0 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -15,6 +15,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "router.h" #include "routerlist.h" #include "crypto.h" diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index dbbe7bf36..a4ec4c06a 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -13,6 +13,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "rendclient.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/circuituse.c b/src/or/circuituse.c index 6ae929e84..70def3d48 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -13,6 +13,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/command.c b/src/or/command.c index 1a5c893b7..96c5fca59 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -19,6 +19,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "command.h" +#include "config.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/config.c b/src/or/config.c index e9c9cbd69..a87238bec 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -14,6 +14,7 @@ #include "or.h" #include "circuitbuild.h" #include "circuitlist.h" +#include "config.h" #include "geoip.h" #include "rendclient.h" #include "rendservice.h" diff --git a/src/or/config.h b/src/or/config.h new file mode 100644 index 000000000..7a4ba5c60 --- /dev/null +++ b/src/or/config.h @@ -0,0 +1,78 @@ +/* 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 config.h + * \brief Header file for config.c. + **/ + +#ifndef _TOR_CONFIG_H +#define _TOR_CONFIG_H + +const char *get_dirportfrontpage(void); +or_options_t *get_options(void); +int set_options(or_options_t *new_val, char **msg); +void config_free_all(void); +const char *safe_str_client(const char *address); +const char *safe_str(const char *address); +const char *escaped_safe_str_client(const char *address); +const char *escaped_safe_str(const char *address); +const char *get_version(void); + +int config_get_lines(const char *string, config_line_t **result); +void config_free_lines(config_line_t *front); +setopt_err_t options_trial_assign(config_line_t *list, int use_defaults, + int clear_first, char **msg); +int resolve_my_address(int warn_severity, or_options_t *options, + uint32_t *addr, char **hostname_out); +int is_local_addr(const tor_addr_t *addr) ATTR_PURE; +void options_init(or_options_t *options); +char *options_dump(or_options_t *options, int minimal); +int options_init_from_torrc(int argc, char **argv); +setopt_err_t options_init_from_string(const char *cf, + int command, const char *command_arg, char **msg); +int option_is_recognized(const char *key); +const char *option_get_canonical_name(const char *key); +config_line_t *option_get_assignment(or_options_t *options, + const char *key); +int options_save_current(void); +const char *get_torrc_fname(void); +char *options_get_datadir_fname2_suffix(or_options_t *options, + const char *sub1, const char *sub2, + const char *suffix); +#define get_datadir_fname2_suffix(sub1, sub2, suffix) \ + options_get_datadir_fname2_suffix(get_options(), (sub1), (sub2), (suffix)) +/** Return a newly allocated string containing datadir/sub1. See + * get_datadir_fname2_suffix. */ +#define get_datadir_fname(sub1) get_datadir_fname2_suffix((sub1), NULL, NULL) +/** Return a newly allocated string containing datadir/sub1/sub2. See + * get_datadir_fname2_suffix. */ +#define get_datadir_fname2(sub1,sub2) \ + get_datadir_fname2_suffix((sub1), (sub2), NULL) +/** Return a newly allocated string containing datadir/sub1suffix. See + * get_datadir_fname2_suffix. */ +#define get_datadir_fname_suffix(sub1, suffix) \ + get_datadir_fname2_suffix((sub1), NULL, (suffix)) + +or_state_t *get_or_state(void); +int or_state_save(time_t now); + +int options_need_geoip_info(or_options_t *options, const char **reason_out); +int getinfo_helper_config(control_connection_t *conn, + const char *question, char **answer, + const char **errmsg); + +const char *tor_get_digests(void); +uint32_t get_effective_bwrate(or_options_t *options); +uint32_t get_effective_bwburst(or_options_t *options); + +#ifdef CONFIG_PRIVATE +/* Used only by config.c and test.c */ +or_options_t *options_new(void); +#endif + +#endif + diff --git a/src/or/connection.c b/src/or/connection.c index 255dcccdf..5265430ac 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -15,6 +15,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 311c48161..ec49d6632 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -13,6 +13,7 @@ #include "buffers.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "dnsserv.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/connection_or.c b/src/or/connection_or.c index a1e372003..f9fda6553 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -14,6 +14,7 @@ #include "buffers.h" #include "circuitbuild.h" #include "command.h" +#include "config.h" #include "geoip.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/control.c b/src/or/control.c index 9c2f4f55d..f6363e522 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -15,6 +15,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "dnsserv.h" #include "geoip.h" #include "router.h" diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index b9c51d4fc..babc6d67b 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -16,6 +16,7 @@ #include "buffers.h" #include "circuitbuild.h" #include "circuitlist.h" +#include "config.h" #include "router.h" /** The maximum number of cpuworker processes we will keep around. */ diff --git a/src/or/directory.c b/src/or/directory.c index 40f1a1e7f..fa340c126 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -6,6 +6,7 @@ #include "or.h" #include "buffers.h" #include "circuitbuild.h" +#include "config.h" #include "geoip.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/dirserv.c b/src/or/dirserv.c index d24fca027..217734487 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -6,6 +6,7 @@ #define DIRSERV_PRIVATE #include "or.h" #include "buffers.h" +#include "config.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/dirvote.c b/src/or/dirvote.c index 782e04c1b..6e6bf8d08 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -5,6 +5,7 @@ #define DIRVOTE_PRIVATE #include "or.h" +#include "config.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/dns.c b/src/or/dns.c index 131304711..905be3ef9 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -14,6 +14,7 @@ #include "or.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "router.h" #include "ht.h" #ifdef HAVE_EVENT2_DNS_H diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c index 390ef2f7b..68d8122f8 100644 --- a/src/or/dnsserv.c +++ b/src/or/dnsserv.c @@ -10,6 +10,7 @@ #include "or.h" #include "dnsserv.h" +#include "config.h" #ifdef HAVE_EVENT2_DNS_H #include #include diff --git a/src/or/geoip.c b/src/or/geoip.c index 5275c6ec7..16b3b14ed 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -10,6 +10,7 @@ #define GEOIP_PRIVATE #include "or.h" #include "ht.h" +#include "config.h" #include "dnsserv.h" #include "geoip.h" #include "routerlist.h" diff --git a/src/or/hibernate.c b/src/or/hibernate.c index 245c6d4ef..74b1d85de 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -22,6 +22,7 @@ hibernating, phase 2: */ #include "or.h" +#include "config.h" #include "router.h" /** Possible values of hibernate_state */ diff --git a/src/or/main.c b/src/or/main.c index 9d4dfed80..4af66c356 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -17,6 +17,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "command.h" +#include "config.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/microdesc.c b/src/or/microdesc.c index b3c54a84f..0e478bf2a 100644 --- a/src/or/microdesc.c +++ b/src/or/microdesc.c @@ -2,6 +2,7 @@ /* See LICENSE for licensing information */ #include "or.h" +#include "config.h" /** A data structure to hold a bunch of cached microdescriptors. There are * two active files in the cache: a "cache file" that we mmap, and a "journal diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 06472f2e6..34ead6f30 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -12,6 +12,7 @@ #include "or.h" #include "circuitbuild.h" +#include "config.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/onion.c b/src/or/onion.c index 2d666475f..5b4f3a07c 100644 --- a/src/or/onion.c +++ b/src/or/onion.c @@ -12,6 +12,7 @@ #include "or.h" #include "circuitlist.h" +#include "config.h" /** Type for a linked list of circuits that are waiting for a free CPU worker * to process a waiting onion handshake. */ diff --git a/src/or/or.h b/src/or/or.h index 29d51fc19..d2b6dd8bc 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3066,68 +3066,6 @@ typedef enum setopt_err_t { SETOPT_ERR_SETTING = -4, } setopt_err_t; -const char *get_dirportfrontpage(void); -or_options_t *get_options(void); -int set_options(or_options_t *new_val, char **msg); -void config_free_all(void); -const char *safe_str_client(const char *address); -const char *safe_str(const char *address); -const char *escaped_safe_str_client(const char *address); -const char *escaped_safe_str(const char *address); -const char *get_version(void); - -int config_get_lines(const char *string, config_line_t **result); -void config_free_lines(config_line_t *front); -setopt_err_t options_trial_assign(config_line_t *list, int use_defaults, - int clear_first, char **msg); -int resolve_my_address(int warn_severity, or_options_t *options, - uint32_t *addr, char **hostname_out); -int is_local_addr(const tor_addr_t *addr) ATTR_PURE; -void options_init(or_options_t *options); -char *options_dump(or_options_t *options, int minimal); -int options_init_from_torrc(int argc, char **argv); -setopt_err_t options_init_from_string(const char *cf, - int command, const char *command_arg, char **msg); -int option_is_recognized(const char *key); -const char *option_get_canonical_name(const char *key); -config_line_t *option_get_assignment(or_options_t *options, - const char *key); -int options_save_current(void); -const char *get_torrc_fname(void); -char *options_get_datadir_fname2_suffix(or_options_t *options, - const char *sub1, const char *sub2, - const char *suffix); -#define get_datadir_fname2_suffix(sub1, sub2, suffix) \ - options_get_datadir_fname2_suffix(get_options(), (sub1), (sub2), (suffix)) -/** Return a newly allocated string containing datadir/sub1. See - * get_datadir_fname2_suffix. */ -#define get_datadir_fname(sub1) get_datadir_fname2_suffix((sub1), NULL, NULL) -/** Return a newly allocated string containing datadir/sub1/sub2. See - * get_datadir_fname2_suffix. */ -#define get_datadir_fname2(sub1,sub2) \ - get_datadir_fname2_suffix((sub1), (sub2), NULL) -/** Return a newly allocated string containing datadir/sub1suffix. See - * get_datadir_fname2_suffix. */ -#define get_datadir_fname_suffix(sub1, suffix) \ - get_datadir_fname2_suffix((sub1), NULL, (suffix)) - -or_state_t *get_or_state(void); -int or_state_save(time_t now); - -int options_need_geoip_info(or_options_t *options, const char **reason_out); -int getinfo_helper_config(control_connection_t *conn, - const char *question, char **answer, - const char **errmsg); - -const char *tor_get_digests(void); -uint32_t get_effective_bwrate(or_options_t *options); -uint32_t get_effective_bwburst(or_options_t *options); - -#ifdef CONFIG_PRIVATE -/* Used only by config.c and test.c */ -or_options_t *options_new(void); -#endif - /********************************* connection.c ***************************/ const char *conn_type_to_string(int type); diff --git a/src/or/policies.c b/src/or/policies.c index f5c02a600..8866b57c9 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -9,6 +9,7 @@ **/ #include "or.h" +#include "config.h" #include "ht.h" /** Policy that addresses for incoming SOCKS connections must match. */ diff --git a/src/or/reasons.c b/src/or/reasons.c index e1c64ebff..569e25390 100644 --- a/src/or/reasons.c +++ b/src/or/reasons.c @@ -9,6 +9,7 @@ **/ #include "or.h" +#include "config.h" /***************************** Edge (stream) reasons **********************/ diff --git a/src/or/relay.c b/src/or/relay.c index 87f453dac..53631ab41 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -15,6 +15,7 @@ #include "buffers.h" #include "circuitbuild.h" #include "circuitlist.h" +#include "config.h" #include "geoip.h" #include "mempool.h" #include "rendcommon.h" diff --git a/src/or/rendclient.c b/src/or/rendclient.c index c8e6c0a4f..5e1f81ee4 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -11,6 +11,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "rendclient.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/rendcommon.c b/src/or/rendcommon.c index e8d101484..a8862ae44 100644 --- a/src/or/rendcommon.c +++ b/src/or/rendcommon.c @@ -10,6 +10,7 @@ #include "or.h" #include "circuitbuild.h" +#include "config.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/rendmid.c b/src/or/rendmid.c index a248828a0..f99654372 100644 --- a/src/or/rendmid.c +++ b/src/or/rendmid.c @@ -9,6 +9,7 @@ #include "or.h" #include "circuitlist.h" +#include "config.h" /** Respond to an ESTABLISH_INTRO cell by checking the signed data and * setting the circuit's purpose and service pk digest. diff --git a/src/or/rendservice.c b/src/or/rendservice.c index fea0b06a1..a7ed2007f 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -11,6 +11,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/rephist.c b/src/or/rephist.c index 4fa421e51..88ba83e3e 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -12,6 +12,7 @@ #include "or.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "router.h" #include "routerlist.h" #include "ht.h" diff --git a/src/or/router.c b/src/or/router.c index a1af88f57..20990b2dd 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -9,6 +9,7 @@ #include "or.h" #include "circuitlist.h" #include "circuituse.h" +#include "config.h" #include "geoip.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 76e9b1b3d..5cf698aaa 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -13,6 +13,7 @@ #include "or.h" #include "circuitbuild.h" +#include "config.h" #include "geoip.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 1a770c87e..b406a1cba 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -10,6 +10,7 @@ **/ #include "or.h" +#include "config.h" #include "rendcommon.h" #include "router.h" #include "routerlist.h" diff --git a/src/test/test.c b/src/test/test.c index ef9d9d61e..30bb1a0f7 100644 --- a/src/test/test.c +++ b/src/test/test.c @@ -45,6 +45,7 @@ double fabs(double x); #include "or.h" #include "buffers.h" #include "circuitbuild.h" +#include "config.h" #include "geoip.h" #include "rendcommon.h" #include "test.h" diff --git a/src/test/test_util.c b/src/test/test_util.c index bba96325c..fc31d055c 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -7,6 +7,7 @@ #define CONTROL_PRIVATE #define MEMPOOL_PRIVATE #include "or.h" +#include "config.h" #include "test.h" #include "mempool.h" #include "memarea.h" -- cgit v1.2.3 From 2a74101f7a45308458ce30a3ea95e58593709613 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Thu, 22 Jul 2010 10:32:52 +0200 Subject: Create connection.h --- src/or/circuitbuild.c | 1 + src/or/circuitlist.c | 1 + src/or/circuituse.c | 1 + src/or/command.c | 1 + src/or/config.c | 1 + src/or/connection.c | 1 + src/or/connection.h | 100 +++++++++++++++++++++++++++++++++++++++++++++++ src/or/connection_edge.c | 1 + src/or/connection_or.c | 1 + src/or/control.c | 1 + src/or/cpuworker.c | 1 + src/or/directory.c | 1 + src/or/dirserv.c | 1 + src/or/dns.c | 1 + src/or/dnsserv.c | 1 + src/or/hibernate.c | 1 + src/or/main.c | 1 + src/or/networkstatus.c | 1 + src/or/or.h | 86 ---------------------------------------- src/or/relay.c | 1 + src/or/rendclient.c | 1 + src/or/router.c | 1 + src/or/routerlist.c | 1 + 23 files changed, 121 insertions(+), 86 deletions(-) create mode 100644 src/or/connection.h (limited to 'src/or/dnsserv.c') diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 041aed3a0..0045080fa 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -16,6 +16,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "connection.h" #include "router.h" #include "routerlist.h" #include "crypto.h" diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index a4ec4c06a..3f06e6ea6 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -13,6 +13,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "circuituse.h" +#include "connection.h" #include "config.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/circuituse.c b/src/or/circuituse.c index 70def3d48..f9bf6fe14 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -14,6 +14,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "connection.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/command.c b/src/or/command.c index 96c5fca59..22f36fff5 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -19,6 +19,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "command.h" +#include "connection.h" #include "config.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/config.c b/src/or/config.c index a87238bec..41716d0dc 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -15,6 +15,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "config.h" +#include "connection.h" #include "geoip.h" #include "rendclient.h" #include "rendservice.h" diff --git a/src/or/connection.c b/src/or/connection.c index 5265430ac..c7d767126 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -16,6 +16,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "connection.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/connection.h b/src/or/connection.h new file mode 100644 index 000000000..f38927e78 --- /dev/null +++ b/src/or/connection.h @@ -0,0 +1,100 @@ +/* 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 connection.h + * \brief Header file for connection.c. + **/ + +#ifndef _TOR_CONNECTION_H +#define _TOR_CONNECTION_H + +const char *conn_type_to_string(int type); +const char *conn_state_to_string(int type, int state); + +dir_connection_t *dir_connection_new(int socket_family); +or_connection_t *or_connection_new(int socket_family); +edge_connection_t *edge_connection_new(int type, int socket_family); +control_connection_t *control_connection_new(int socket_family); +connection_t *connection_new(int type, int socket_family); + +void connection_link_connections(connection_t *conn_a, connection_t *conn_b); +void connection_free(connection_t *conn); +void connection_free_all(void); +void connection_about_to_close_connection(connection_t *conn); +void connection_close_immediate(connection_t *conn); +void _connection_mark_for_close(connection_t *conn,int line, const char *file); + +#define connection_mark_for_close(c) \ + _connection_mark_for_close((c), __LINE__, _SHORT_FILE_) + +void connection_expire_held_open(void); + +int connection_connect(connection_t *conn, const char *address, + const tor_addr_t *addr, + uint16_t port, int *socket_error); + +int connection_proxy_connect(connection_t *conn, int type); +int connection_read_proxy_handshake(connection_t *conn); + +int retry_all_listeners(smartlist_t *replaced_conns, + smartlist_t *new_conns); + +ssize_t connection_bucket_write_limit(connection_t *conn, time_t now); +int global_write_bucket_low(connection_t *conn, size_t attempt, int priority); +void connection_bucket_init(void); +void connection_bucket_refill(int seconds_elapsed, time_t now); + +int connection_handle_read(connection_t *conn); + +int connection_fetch_from_buf(char *string, size_t len, connection_t *conn); + +int connection_wants_to_flush(connection_t *conn); +int connection_outbuf_too_full(connection_t *conn); +int connection_handle_write(connection_t *conn, int force); +void _connection_write_to_buf_impl(const char *string, size_t len, + connection_t *conn, int zlib); +static void connection_write_to_buf(const char *string, size_t len, + connection_t *conn); +static void connection_write_to_buf_zlib(const char *string, size_t len, + dir_connection_t *conn, int done); +static INLINE void +connection_write_to_buf(const char *string, size_t len, connection_t *conn) +{ + _connection_write_to_buf_impl(string, len, conn, 0); +} +static INLINE void +connection_write_to_buf_zlib(const char *string, size_t len, + dir_connection_t *conn, int done) +{ + _connection_write_to_buf_impl(string, len, TO_CONN(conn), done ? -1 : 1); +} + +connection_t *connection_get_by_global_id(uint64_t id); + +connection_t *connection_get_by_type(int type); +connection_t *connection_get_by_type_purpose(int type, int purpose); +connection_t *connection_get_by_type_addr_port_purpose(int type, + const tor_addr_t *addr, + uint16_t port, int purpose); +connection_t *connection_get_by_type_state(int type, int state); +connection_t *connection_get_by_type_state_rendquery(int type, int state, + const char *rendquery); + +#define connection_speaks_cells(conn) ((conn)->type == CONN_TYPE_OR) +int connection_is_listener(connection_t *conn); +int connection_state_is_open(connection_t *conn); +int connection_state_is_connecting(connection_t *conn); + +char *alloc_http_authenticator(const char *authenticator); + +void assert_connection_ok(connection_t *conn, time_t now); +int connection_or_nonopen_was_started_here(or_connection_t *conn); +void connection_dump_buffer_mem_stats(int severity); +void remove_file_if_very_old(const char *fname, time_t now); + +#endif + diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index ec49d6632..530d8b731 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -14,6 +14,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "connection.h" #include "dnsserv.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/connection_or.c b/src/or/connection_or.c index f9fda6553..e8633c10c 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -15,6 +15,7 @@ #include "circuitbuild.h" #include "command.h" #include "config.h" +#include "connection.h" #include "geoip.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/control.c b/src/or/control.c index f6363e522..75c4ae4f3 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -16,6 +16,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "connection.h" #include "dnsserv.h" #include "geoip.h" #include "router.h" diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index babc6d67b..9f49e2e36 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -17,6 +17,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "config.h" +#include "connection.h" #include "router.h" /** The maximum number of cpuworker processes we will keep around. */ diff --git a/src/or/directory.c b/src/or/directory.c index fa340c126..59e6d0d0f 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -7,6 +7,7 @@ #include "buffers.h" #include "circuitbuild.h" #include "config.h" +#include "connection.h" #include "geoip.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 217734487..dc07e802f 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -7,6 +7,7 @@ #include "or.h" #include "buffers.h" #include "config.h" +#include "connection.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/dns.c b/src/or/dns.c index 905be3ef9..e8b75d518 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -15,6 +15,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "connection.h" #include "router.h" #include "ht.h" #ifdef HAVE_EVENT2_DNS_H diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c index 68d8122f8..6e3ccfbdf 100644 --- a/src/or/dnsserv.c +++ b/src/or/dnsserv.c @@ -11,6 +11,7 @@ #include "or.h" #include "dnsserv.h" #include "config.h" +#include "connection.h" #ifdef HAVE_EVENT2_DNS_H #include #include diff --git a/src/or/hibernate.c b/src/or/hibernate.c index 74b1d85de..2a08899cc 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -23,6 +23,7 @@ hibernating, phase 2: #include "or.h" #include "config.h" +#include "connection.h" #include "router.h" /** Possible values of hibernate_state */ diff --git a/src/or/main.c b/src/or/main.c index 4af66c356..9b4033850 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -18,6 +18,7 @@ #include "circuituse.h" #include "command.h" #include "config.h" +#include "connection.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 34ead6f30..c73a30bc3 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -13,6 +13,7 @@ #include "or.h" #include "circuitbuild.h" #include "config.h" +#include "connection.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/or.h b/src/or/or.h index d2b6dd8bc..bbc31b671 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3066,92 +3066,6 @@ typedef enum setopt_err_t { SETOPT_ERR_SETTING = -4, } setopt_err_t; -/********************************* connection.c ***************************/ - -const char *conn_type_to_string(int type); -const char *conn_state_to_string(int type, int state); - -dir_connection_t *dir_connection_new(int socket_family); -or_connection_t *or_connection_new(int socket_family); -edge_connection_t *edge_connection_new(int type, int socket_family); -control_connection_t *control_connection_new(int socket_family); -connection_t *connection_new(int type, int socket_family); - -void connection_link_connections(connection_t *conn_a, connection_t *conn_b); -void connection_free(connection_t *conn); -void connection_free_all(void); -void connection_about_to_close_connection(connection_t *conn); -void connection_close_immediate(connection_t *conn); -void _connection_mark_for_close(connection_t *conn,int line, const char *file); - -#define connection_mark_for_close(c) \ - _connection_mark_for_close((c), __LINE__, _SHORT_FILE_) - -void connection_expire_held_open(void); - -int connection_connect(connection_t *conn, const char *address, - const tor_addr_t *addr, - uint16_t port, int *socket_error); - -int connection_proxy_connect(connection_t *conn, int type); -int connection_read_proxy_handshake(connection_t *conn); - -int retry_all_listeners(smartlist_t *replaced_conns, - smartlist_t *new_conns); - -ssize_t connection_bucket_write_limit(connection_t *conn, time_t now); -int global_write_bucket_low(connection_t *conn, size_t attempt, int priority); -void connection_bucket_init(void); -void connection_bucket_refill(int seconds_elapsed, time_t now); - -int connection_handle_read(connection_t *conn); - -int connection_fetch_from_buf(char *string, size_t len, connection_t *conn); - -int connection_wants_to_flush(connection_t *conn); -int connection_outbuf_too_full(connection_t *conn); -int connection_handle_write(connection_t *conn, int force); -void _connection_write_to_buf_impl(const char *string, size_t len, - connection_t *conn, int zlib); -static void connection_write_to_buf(const char *string, size_t len, - connection_t *conn); -static void connection_write_to_buf_zlib(const char *string, size_t len, - dir_connection_t *conn, int done); -static INLINE void -connection_write_to_buf(const char *string, size_t len, connection_t *conn) -{ - _connection_write_to_buf_impl(string, len, conn, 0); -} -static INLINE void -connection_write_to_buf_zlib(const char *string, size_t len, - dir_connection_t *conn, int done) -{ - _connection_write_to_buf_impl(string, len, TO_CONN(conn), done ? -1 : 1); -} - -connection_t *connection_get_by_global_id(uint64_t id); - -connection_t *connection_get_by_type(int type); -connection_t *connection_get_by_type_purpose(int type, int purpose); -connection_t *connection_get_by_type_addr_port_purpose(int type, - const tor_addr_t *addr, - uint16_t port, int purpose); -connection_t *connection_get_by_type_state(int type, int state); -connection_t *connection_get_by_type_state_rendquery(int type, int state, - const char *rendquery); - -#define connection_speaks_cells(conn) ((conn)->type == CONN_TYPE_OR) -int connection_is_listener(connection_t *conn); -int connection_state_is_open(connection_t *conn); -int connection_state_is_connecting(connection_t *conn); - -char *alloc_http_authenticator(const char *authenticator); - -void assert_connection_ok(connection_t *conn, time_t now); -int connection_or_nonopen_was_started_here(or_connection_t *conn); -void connection_dump_buffer_mem_stats(int severity); -void remove_file_if_very_old(const char *fname, time_t now); - /********************************* connection_edge.c *************************/ #define connection_mark_unattached_ap(conn, endreason) \ diff --git a/src/or/relay.c b/src/or/relay.c index 53631ab41..59d7282dc 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -16,6 +16,7 @@ #include "circuitbuild.h" #include "circuitlist.h" #include "config.h" +#include "connection.h" #include "geoip.h" #include "mempool.h" #include "rendcommon.h" diff --git a/src/or/rendclient.c b/src/or/rendclient.c index 5e1f81ee4..eb971ac63 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -12,6 +12,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "connection.h" #include "rendclient.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/router.c b/src/or/router.c index 20990b2dd..9cb7ad4f8 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -10,6 +10,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "connection.h" #include "geoip.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 5cf698aaa..df2960065 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -14,6 +14,7 @@ #include "or.h" #include "circuitbuild.h" #include "config.h" +#include "connection.h" #include "geoip.h" #include "rendcommon.h" #include "rendservice.h" -- cgit v1.2.3 From 78b6a4650b8ea90d99e49aff2a2c20df461bb127 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Thu, 22 Jul 2010 10:43:02 +0200 Subject: Create connection_edge.h --- src/or/buffers.c | 1 + src/or/circuitbuild.c | 1 + src/or/circuitlist.c | 1 + src/or/circuituse.c | 1 + src/or/config.c | 1 + src/or/connection.c | 1 + src/or/connection_edge.c | 1 + src/or/connection_edge.h | 98 ++++++++++++++++++++++++++++++++++++++++++++++++ src/or/control.c | 1 + src/or/directory.c | 1 + src/or/dns.c | 1 + src/or/dnsserv.c | 1 + src/or/hibernate.c | 1 + src/or/main.c | 1 + src/or/or.h | 80 --------------------------------------- src/or/relay.c | 1 + src/or/rendclient.c | 1 + src/test/test.c | 1 + 18 files changed, 114 insertions(+), 80 deletions(-) create mode 100644 src/or/connection_edge.h (limited to 'src/or/dnsserv.c') diff --git a/src/or/buffers.c b/src/or/buffers.c index 2c1ba78ec..c9abddcd6 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -14,6 +14,7 @@ #include "or.h" #include "buffers.h" #include "config.h" +#include "connection_edge.h" #include "../common/util.h" #include "../common/torlog.h" #ifdef HAVE_UNISTD_H diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 0045080fa..a7b5ee129 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -17,6 +17,7 @@ #include "circuituse.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "router.h" #include "routerlist.h" #include "crypto.h" diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 3f06e6ea6..edcd194e6 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -15,6 +15,7 @@ #include "circuituse.h" #include "connection.h" #include "config.h" +#include "connection_edge.h" #include "rendclient.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/circuituse.c b/src/or/circuituse.c index f9bf6fe14..d8f1ec76b 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -15,6 +15,7 @@ #include "circuituse.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/config.c b/src/or/config.c index 41716d0dc..07e62463e 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -16,6 +16,7 @@ #include "circuitlist.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "geoip.h" #include "rendclient.h" #include "rendservice.h" diff --git a/src/or/connection.c b/src/or/connection.c index c7d767126..dc68bcf1a 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -17,6 +17,7 @@ #include "circuituse.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 530d8b731..d4f22fac0 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -15,6 +15,7 @@ #include "circuituse.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "dnsserv.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/connection_edge.h b/src/or/connection_edge.h new file mode 100644 index 000000000..c3d6098c5 --- /dev/null +++ b/src/or/connection_edge.h @@ -0,0 +1,98 @@ +/* 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 connection_edge.h + * \brief Header file for connection_edge.c. + **/ + +#ifndef _TOR_CONNECTION_EDGE_H +#define _TOR_CONNECTION_EDGE_H + +#define connection_mark_unattached_ap(conn, endreason) \ + _connection_mark_unattached_ap((conn), (endreason), __LINE__, _SHORT_FILE_) + +void _connection_mark_unattached_ap(edge_connection_t *conn, int endreason, + int line, const char *file); +int connection_edge_reached_eof(edge_connection_t *conn); +int connection_edge_process_inbuf(edge_connection_t *conn, + int package_partial); +int connection_edge_destroy(circid_t circ_id, edge_connection_t *conn); +int connection_edge_end(edge_connection_t *conn, uint8_t reason); +int connection_edge_end_errno(edge_connection_t *conn); +int connection_edge_finished_flushing(edge_connection_t *conn); +int connection_edge_finished_connecting(edge_connection_t *conn); + +int connection_ap_handshake_send_begin(edge_connection_t *ap_conn); +int connection_ap_handshake_send_resolve(edge_connection_t *ap_conn); + +edge_connection_t *connection_ap_make_link(char *address, uint16_t port, + const char *digest, + int use_begindir, int want_onehop); +void connection_ap_handshake_socks_reply(edge_connection_t *conn, char *reply, + size_t replylen, + int endreason); +void connection_ap_handshake_socks_resolved(edge_connection_t *conn, + int answer_type, + size_t answer_len, + const char *answer, + int ttl, + time_t expires); + +int connection_exit_begin_conn(cell_t *cell, circuit_t *circ); +int connection_exit_begin_resolve(cell_t *cell, or_circuit_t *circ); +void connection_exit_connect(edge_connection_t *conn); +int connection_edge_is_rendezvous_stream(edge_connection_t *conn); +int connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit, + int excluded_means_no); +void connection_ap_expire_beginning(void); +void connection_ap_attach_pending(void); +void connection_ap_fail_onehop(const char *failed_digest, + cpath_build_state_t *build_state); +void circuit_discard_optional_exit_enclaves(extend_info_t *info); +int connection_ap_detach_retriable(edge_connection_t *conn, + origin_circuit_t *circ, + int reason); +int connection_ap_process_transparent(edge_connection_t *conn); + +int address_is_invalid_destination(const char *address, int client); + +void addressmap_init(void); +void addressmap_clean(time_t now); +void addressmap_clear_configured(void); +void addressmap_clear_transient(void); +void addressmap_free_all(void); +int addressmap_rewrite(char *address, size_t maxlen, time_t *expires_out); +int addressmap_have_mapping(const char *address, int update_timeout); + +void addressmap_register(const char *address, char *new_address, + time_t expires, addressmap_entry_source_t source); +int parse_virtual_addr_network(const char *val, int validate_only, + char **msg); +int client_dns_incr_failures(const char *address); +void client_dns_clear_failures(const char *address); +void client_dns_set_addressmap(const char *address, uint32_t val, + const char *exitname, int ttl); +const char *addressmap_register_virtual_address(int type, char *new_address); +void addressmap_get_mappings(smartlist_t *sl, time_t min_expires, + time_t max_expires, int want_expiry); +int connection_ap_handshake_rewrite_and_attach(edge_connection_t *conn, + origin_circuit_t *circ, + crypt_path_t *cpath); +int hostname_is_noconnect_address(const char *address); + +/** Possible return values for parse_extended_hostname. */ +typedef enum hostname_type_t { + NORMAL_HOSTNAME, ONION_HOSTNAME, EXIT_HOSTNAME, BAD_HOSTNAME +} hostname_type_t; +hostname_type_t parse_extended_hostname(char *address, int allowdotexit); + +#if defined(HAVE_NET_IF_H) && defined(HAVE_NET_PFVAR_H) +int get_pf_socket(void); +#endif + +#endif + diff --git a/src/or/control.c b/src/or/control.c index 75c4ae4f3..97d1b9d2d 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -17,6 +17,7 @@ #include "circuituse.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "dnsserv.h" #include "geoip.h" #include "router.h" diff --git a/src/or/directory.c b/src/or/directory.c index 59e6d0d0f..7d8d7ab4f 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -8,6 +8,7 @@ #include "circuitbuild.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "geoip.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/dns.c b/src/or/dns.c index e8b75d518..5520a493a 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -16,6 +16,7 @@ #include "circuituse.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "router.h" #include "ht.h" #ifdef HAVE_EVENT2_DNS_H diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c index 6e3ccfbdf..4c471105c 100644 --- a/src/or/dnsserv.c +++ b/src/or/dnsserv.c @@ -12,6 +12,7 @@ #include "dnsserv.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #ifdef HAVE_EVENT2_DNS_H #include #include diff --git a/src/or/hibernate.c b/src/or/hibernate.c index 2a08899cc..cd7cdad3d 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -24,6 +24,7 @@ hibernating, phase 2: #include "or.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "router.h" /** Possible values of hibernate_state */ diff --git a/src/or/main.c b/src/or/main.c index 9b4033850..781139749 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -19,6 +19,7 @@ #include "command.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/or.h b/src/or/or.h index bbc31b671..31c57000b 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3068,61 +3068,6 @@ typedef enum setopt_err_t { /********************************* connection_edge.c *************************/ -#define connection_mark_unattached_ap(conn, endreason) \ - _connection_mark_unattached_ap((conn), (endreason), __LINE__, _SHORT_FILE_) - -void _connection_mark_unattached_ap(edge_connection_t *conn, int endreason, - int line, const char *file); -int connection_edge_reached_eof(edge_connection_t *conn); -int connection_edge_process_inbuf(edge_connection_t *conn, - int package_partial); -int connection_edge_destroy(circid_t circ_id, edge_connection_t *conn); -int connection_edge_end(edge_connection_t *conn, uint8_t reason); -int connection_edge_end_errno(edge_connection_t *conn); -int connection_edge_finished_flushing(edge_connection_t *conn); -int connection_edge_finished_connecting(edge_connection_t *conn); - -int connection_ap_handshake_send_begin(edge_connection_t *ap_conn); -int connection_ap_handshake_send_resolve(edge_connection_t *ap_conn); - -edge_connection_t *connection_ap_make_link(char *address, uint16_t port, - const char *digest, - int use_begindir, int want_onehop); -void connection_ap_handshake_socks_reply(edge_connection_t *conn, char *reply, - size_t replylen, - int endreason); -void connection_ap_handshake_socks_resolved(edge_connection_t *conn, - int answer_type, - size_t answer_len, - const char *answer, - int ttl, - time_t expires); - -int connection_exit_begin_conn(cell_t *cell, circuit_t *circ); -int connection_exit_begin_resolve(cell_t *cell, or_circuit_t *circ); -void connection_exit_connect(edge_connection_t *conn); -int connection_edge_is_rendezvous_stream(edge_connection_t *conn); -int connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit, - int excluded_means_no); -void connection_ap_expire_beginning(void); -void connection_ap_attach_pending(void); -void connection_ap_fail_onehop(const char *failed_digest, - cpath_build_state_t *build_state); -void circuit_discard_optional_exit_enclaves(extend_info_t *info); -int connection_ap_detach_retriable(edge_connection_t *conn, - origin_circuit_t *circ, - int reason); -int connection_ap_process_transparent(edge_connection_t *conn); - -int address_is_invalid_destination(const char *address, int client); - -void addressmap_init(void); -void addressmap_clean(time_t now); -void addressmap_clear_configured(void); -void addressmap_clear_transient(void); -void addressmap_free_all(void); -int addressmap_rewrite(char *address, size_t maxlen, time_t *expires_out); -int addressmap_have_mapping(const char *address, int update_timeout); /** Enumerates possible origins of a client-side address mapping. */ typedef enum { /** We're remapping this address because the controller told us to. */ @@ -3137,31 +3082,6 @@ typedef enum { * Tor server that told us what its value was. */ ADDRMAPSRC_DNS, } addressmap_entry_source_t; -void addressmap_register(const char *address, char *new_address, - time_t expires, addressmap_entry_source_t source); -int parse_virtual_addr_network(const char *val, int validate_only, - char **msg); -int client_dns_incr_failures(const char *address); -void client_dns_clear_failures(const char *address); -void client_dns_set_addressmap(const char *address, uint32_t val, - const char *exitname, int ttl); -const char *addressmap_register_virtual_address(int type, char *new_address); -void addressmap_get_mappings(smartlist_t *sl, time_t min_expires, - time_t max_expires, int want_expiry); -int connection_ap_handshake_rewrite_and_attach(edge_connection_t *conn, - origin_circuit_t *circ, - crypt_path_t *cpath); -int hostname_is_noconnect_address(const char *address); - -/** Possible return values for parse_extended_hostname. */ -typedef enum hostname_type_t { - NORMAL_HOSTNAME, ONION_HOSTNAME, EXIT_HOSTNAME, BAD_HOSTNAME -} hostname_type_t; -hostname_type_t parse_extended_hostname(char *address, int allowdotexit); - -#if defined(HAVE_NET_IF_H) && defined(HAVE_NET_PFVAR_H) -int get_pf_socket(void); -#endif /********************************* connection_or.c ***************************/ diff --git a/src/or/relay.c b/src/or/relay.c index 59d7282dc..21de9e9e0 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -17,6 +17,7 @@ #include "circuitlist.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "geoip.h" #include "mempool.h" #include "rendcommon.h" diff --git a/src/or/rendclient.c b/src/or/rendclient.c index eb971ac63..3665eb118 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -13,6 +13,7 @@ #include "circuituse.h" #include "config.h" #include "connection.h" +#include "connection_edge.h" #include "rendclient.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/test/test.c b/src/test/test.c index 30bb1a0f7..7e6bf7055 100644 --- a/src/test/test.c +++ b/src/test/test.c @@ -46,6 +46,7 @@ double fabs(double x); #include "buffers.h" #include "circuitbuild.h" #include "config.h" +#include "connection_edge.h" #include "geoip.h" #include "rendcommon.h" #include "test.h" -- cgit v1.2.3 From 0bfa34e1f6dd97b9860083101479969a94ee2662 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Thu, 22 Jul 2010 11:35:09 +0200 Subject: Create control.h --- src/or/buffers.c | 1 + src/or/circuitbuild.c | 1 + src/or/circuitlist.c | 1 + src/or/circuituse.c | 1 + src/or/command.c | 1 + src/or/config.c | 1 + src/or/connection.c | 1 + src/or/connection_edge.c | 1 + src/or/connection_or.c | 1 + src/or/control.c | 1 + src/or/control.h | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ src/or/cpuworker.c | 1 + src/or/directory.c | 1 + src/or/dirserv.c | 1 + src/or/dns.c | 1 + src/or/dnsserv.c | 1 + src/or/geoip.c | 1 + src/or/main.c | 1 + src/or/networkstatus.c | 1 + src/or/or.h | 68 -------------------------------------- src/or/relay.c | 1 + src/or/router.c | 1 + src/or/routerlist.c | 1 + src/test/test_util.c | 1 + 24 files changed, 107 insertions(+), 68 deletions(-) create mode 100644 src/or/control.h (limited to 'src/or/dnsserv.c') diff --git a/src/or/buffers.c b/src/or/buffers.c index e0e0901b6..20e4d2020 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -16,6 +16,7 @@ #include "config.h" #include "connection_edge.h" #include "connection_or.h" +#include "control.h" #include "../common/util.h" #include "../common/torlog.h" #ifdef HAVE_UNISTD_H diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index d94aa31a0..a675d7dad 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -19,6 +19,7 @@ #include "connection.h" #include "connection_edge.h" #include "connection_or.h" +#include "control.h" #include "router.h" #include "routerlist.h" #include "crypto.h" diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 80c3371ed..d2212dc28 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -17,6 +17,7 @@ #include "config.h" #include "connection_edge.h" #include "connection_or.h" +#include "control.h" #include "rendclient.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/circuituse.c b/src/or/circuituse.c index d8f1ec76b..07e3d0bc4 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -16,6 +16,7 @@ #include "config.h" #include "connection.h" #include "connection_edge.h" +#include "control.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/command.c b/src/or/command.c index 76b0d8771..e0fedbdc8 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -22,6 +22,7 @@ #include "connection.h" #include "connection_or.h" #include "config.h" +#include "control.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/config.c b/src/or/config.c index 07e62463e..2a1f2822f 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -17,6 +17,7 @@ #include "config.h" #include "connection.h" #include "connection_edge.h" +#include "control.h" #include "geoip.h" #include "rendclient.h" #include "rendservice.h" diff --git a/src/or/connection.c b/src/or/connection.c index 90f4c55c2..ae81ae041 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -19,6 +19,7 @@ #include "connection.h" #include "connection_edge.h" #include "connection_or.h" +#include "control.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 7fe73e1a7..023c8aeac 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -17,6 +17,7 @@ #include "connection.h" #include "connection_edge.h" #include "connection_or.h" +#include "control.h" #include "dnsserv.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/connection_or.c b/src/or/connection_or.c index 1d3dc6878..213653f1d 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -17,6 +17,7 @@ #include "config.h" #include "connection.h" #include "connection_or.h" +#include "control.h" #include "geoip.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/control.c b/src/or/control.c index 97d1b9d2d..77ca08516 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -18,6 +18,7 @@ #include "config.h" #include "connection.h" #include "connection_edge.h" +#include "control.h" #include "dnsserv.h" #include "geoip.h" #include "router.h" diff --git a/src/or/control.h b/src/or/control.h new file mode 100644 index 000000000..27ef5c37f --- /dev/null +++ b/src/or/control.h @@ -0,0 +1,85 @@ +/* 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 control.h + * \brief Header file for control.c. + **/ + +#ifndef _TOR_CONTROL_H +#define _TOR_CONTROL_H + +void control_update_global_event_mask(void); +void control_adjust_event_log_severity(void); + +/** Log information about the connection conn, protecting it as with + * CONN_LOG_PROTECT. Example: + * + * LOG_FN_CONN(conn, (LOG_DEBUG, "Socket %d wants to write", conn->s)); + **/ +#define LOG_FN_CONN(conn, args) \ + CONN_LOG_PROTECT(conn, log_fn args) + +int connection_control_finished_flushing(control_connection_t *conn); +int connection_control_reached_eof(control_connection_t *conn); +int connection_control_process_inbuf(control_connection_t *conn); + +#define EVENT_AUTHDIR_NEWDESCS 0x000D +#define EVENT_NS 0x000F +int control_event_is_interesting(int event); + +int control_event_circuit_status(origin_circuit_t *circ, + circuit_status_event_t e, int reason); +int control_event_stream_status(edge_connection_t *conn, + stream_status_event_t e, + int reason); +int control_event_or_conn_status(or_connection_t *conn, + or_conn_status_event_t e, int reason); +int control_event_bandwidth_used(uint32_t n_read, uint32_t n_written); +int control_event_stream_bandwidth(edge_connection_t *edge_conn); +int control_event_stream_bandwidth_used(void); +void control_event_logmsg(int severity, unsigned int domain, const char *msg); +int control_event_descriptors_changed(smartlist_t *routers); +int control_event_address_mapped(const char *from, const char *to, + time_t expires, const char *error); +int control_event_or_authdir_new_descriptor(const char *action, + const char *desc, + size_t desclen, + const char *msg); +int control_event_my_descriptor_changed(void); +int control_event_networkstatus_changed(smartlist_t *statuses); + +int control_event_newconsensus(const networkstatus_t *consensus); +int control_event_networkstatus_changed_single(routerstatus_t *rs); +int control_event_general_status(int severity, const char *format, ...) + CHECK_PRINTF(2,3); +int control_event_client_status(int severity, const char *format, ...) + CHECK_PRINTF(2,3); +int control_event_server_status(int severity, const char *format, ...) + CHECK_PRINTF(2,3); +int control_event_guard(const char *nickname, const char *digest, + const char *status); +int control_event_buildtimeout_set(const circuit_build_times_t *cbt, + buildtimeout_set_event_t type); + +int init_cookie_authentication(int enabled); +smartlist_t *decode_hashed_passwords(config_line_t *passwords); +void disable_control_logging(void); +void enable_control_logging(void); + +void control_event_bootstrap(bootstrap_status_t status, int progress); +void control_event_bootstrap_problem(const char *warn, int reason); + +void control_event_clients_seen(const char *controller_str); + +#ifdef CONTROL_PRIVATE +/* Used only by control.c and test.c */ +size_t write_escaped_data(const char *data, size_t len, char **out); +size_t read_escaped_data(const char *data, size_t len, char **out); +#endif + +#endif + diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index 9f49e2e36..58257b781 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -18,6 +18,7 @@ #include "circuitlist.h" #include "config.h" #include "connection.h" +#include "cpuworker.h" #include "router.h" /** The maximum number of cpuworker processes we will keep around. */ diff --git a/src/or/directory.c b/src/or/directory.c index 7d8d7ab4f..5fdae4309 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -9,6 +9,7 @@ #include "config.h" #include "connection.h" #include "connection_edge.h" +#include "control.h" #include "geoip.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 4a753af21..80423381e 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -9,6 +9,7 @@ #include "config.h" #include "connection.h" #include "connection_or.h" +#include "control.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/dns.c b/src/or/dns.c index 5520a493a..77dc97c8b 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -17,6 +17,7 @@ #include "config.h" #include "connection.h" #include "connection_edge.h" +#include "control.h" #include "router.h" #include "ht.h" #ifdef HAVE_EVENT2_DNS_H diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c index 4c471105c..317a0afb2 100644 --- a/src/or/dnsserv.c +++ b/src/or/dnsserv.c @@ -13,6 +13,7 @@ #include "config.h" #include "connection.h" #include "connection_edge.h" +#include "control.h" #ifdef HAVE_EVENT2_DNS_H #include #include diff --git a/src/or/geoip.c b/src/or/geoip.c index 16b3b14ed..eae927522 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -11,6 +11,7 @@ #include "or.h" #include "ht.h" #include "config.h" +#include "control.h" #include "dnsserv.h" #include "geoip.h" #include "routerlist.h" diff --git a/src/or/main.c b/src/or/main.c index 3b4c73448..63848639e 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -21,6 +21,7 @@ #include "connection.h" #include "connection_edge.h" #include "connection_or.h" +#include "control.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index c73a30bc3..21774976c 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -14,6 +14,7 @@ #include "circuitbuild.h" #include "config.h" #include "connection.h" +#include "control.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/or.h b/src/or/or.h index 236c24bcb..91509eab0 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3128,9 +3128,6 @@ typedef enum buildtimeout_set_event_t { BUILDTIMEOUT_SET_EVENT_RESUME = 4 } buildtimeout_set_event_t; -void control_update_global_event_mask(void); -void control_adjust_event_log_severity(void); - /** Execute the statement stmt, which may log events concerning the * connection conn. To prevent infinite loops, disable log messages * being sent to controllers if conn is a control connection. @@ -3147,60 +3144,6 @@ void control_adjust_event_log_severity(void); enable_control_logging(); \ STMT_END -/** Log information about the connection conn, protecting it as with - * CONN_LOG_PROTECT. Example: - * - * LOG_FN_CONN(conn, (LOG_DEBUG, "Socket %d wants to write", conn->s)); - **/ -#define LOG_FN_CONN(conn, args) \ - CONN_LOG_PROTECT(conn, log_fn args) - -int connection_control_finished_flushing(control_connection_t *conn); -int connection_control_reached_eof(control_connection_t *conn); -int connection_control_process_inbuf(control_connection_t *conn); - -#define EVENT_AUTHDIR_NEWDESCS 0x000D -#define EVENT_NS 0x000F -int control_event_is_interesting(int event); - -int control_event_circuit_status(origin_circuit_t *circ, - circuit_status_event_t e, int reason); -int control_event_stream_status(edge_connection_t *conn, - stream_status_event_t e, - int reason); -int control_event_or_conn_status(or_connection_t *conn, - or_conn_status_event_t e, int reason); -int control_event_bandwidth_used(uint32_t n_read, uint32_t n_written); -int control_event_stream_bandwidth(edge_connection_t *edge_conn); -int control_event_stream_bandwidth_used(void); -void control_event_logmsg(int severity, unsigned int domain, const char *msg); -int control_event_descriptors_changed(smartlist_t *routers); -int control_event_address_mapped(const char *from, const char *to, - time_t expires, const char *error); -int control_event_or_authdir_new_descriptor(const char *action, - const char *desc, - size_t desclen, - const char *msg); -int control_event_my_descriptor_changed(void); -int control_event_networkstatus_changed(smartlist_t *statuses); -int control_event_newconsensus(const networkstatus_t *consensus); -int control_event_networkstatus_changed_single(routerstatus_t *rs); -int control_event_general_status(int severity, const char *format, ...) - CHECK_PRINTF(2,3); -int control_event_client_status(int severity, const char *format, ...) - CHECK_PRINTF(2,3); -int control_event_server_status(int severity, const char *format, ...) - CHECK_PRINTF(2,3); -int control_event_guard(const char *nickname, const char *digest, - const char *status); -int control_event_buildtimeout_set(const circuit_build_times_t *cbt, - buildtimeout_set_event_t type); - -int init_cookie_authentication(int enabled); -smartlist_t *decode_hashed_passwords(config_line_t *passwords); -void disable_control_logging(void); -void enable_control_logging(void); - /** Enum describing various stages of bootstrapping, for use with controller * bootstrap status events. The values range from 0 to 100. */ typedef enum { @@ -3221,17 +3164,6 @@ typedef enum { BOOTSTRAP_STATUS_DONE=100 } bootstrap_status_t; -void control_event_bootstrap(bootstrap_status_t status, int progress); -void control_event_bootstrap_problem(const char *warn, int reason); - -void control_event_clients_seen(const char *controller_str); - -#ifdef CONTROL_PRIVATE -/* Used only by control.c and test.c */ -size_t write_escaped_data(const char *data, size_t len, char **out); -size_t read_escaped_data(const char *data, size_t len, char **out); -#endif - /********************************* cpuworker.c *****************************/ void cpu_init(void); diff --git a/src/or/relay.c b/src/or/relay.c index b9ba31775..5db5cfde8 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -19,6 +19,7 @@ #include "connection.h" #include "connection_edge.h" #include "connection_or.h" +#include "control.h" #include "geoip.h" #include "mempool.h" #include "rendcommon.h" diff --git a/src/or/router.c b/src/or/router.c index 9cb7ad4f8..722bb4da5 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -11,6 +11,7 @@ #include "circuituse.h" #include "config.h" #include "connection.h" +#include "control.h" #include "geoip.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/routerlist.c b/src/or/routerlist.c index df2960065..a28415289 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -15,6 +15,7 @@ #include "circuitbuild.h" #include "config.h" #include "connection.h" +#include "control.h" #include "geoip.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/test/test_util.c b/src/test/test_util.c index fc31d055c..22f2707d7 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -8,6 +8,7 @@ #define MEMPOOL_PRIVATE #include "or.h" #include "config.h" +#include "control.h" #include "test.h" #include "mempool.h" #include "memarea.h" -- cgit v1.2.3 From 0f1548ab18c09efda944def3597bafc2cd9552c8 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Fri, 23 Jul 2010 19:58:06 +0200 Subject: Create main.h --- src/or/circuitbuild.c | 1 + src/or/config.c | 1 + src/or/connection.c | 1 + src/or/connection_edge.c | 1 + src/or/connection_or.c | 1 + src/or/control.c | 1 + src/or/cpuworker.c | 1 + src/or/directory.c | 1 + src/or/dns.c | 1 + src/or/dnsserv.c | 1 + src/or/hibernate.c | 1 + src/or/main.c | 1 + src/or/main.h | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ src/or/or.h | 53 -------------------------------------- src/or/relay.c | 1 + src/or/rendclient.c | 1 + src/or/router.c | 1 + src/or/routerlist.c | 1 + 18 files changed, 83 insertions(+), 53 deletions(-) create mode 100644 src/or/main.h (limited to 'src/or/dnsserv.c') diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 1a189caab..71eb64379 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -21,6 +21,7 @@ #include "connection_or.h" #include "control.h" #include "directory.h" +#include "main.h" #include "router.h" #include "routerlist.h" #include "crypto.h" diff --git a/src/or/config.c b/src/or/config.c index 68710ee8c..34acc4f8b 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -24,6 +24,7 @@ #include "dns.h" #include "geoip.h" #include "hibernate.h" +#include "main.h" #include "rendclient.h" #include "rendservice.h" #include "router.h" diff --git a/src/or/connection.c b/src/or/connection.c index 51ee9f472..854a53aaf 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -26,6 +26,7 @@ #include "dns.h" #include "dnsserv.h" #include "geoip.h" +#include "main.h" #include "rendclient.h" #include "rendcommon.h" #include "router.h" diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 28ed9ad62..5dff47958 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -22,6 +22,7 @@ #include "dnsserv.h" #include "dirserv.h" #include "hibernate.h" +#include "main.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/connection_or.c b/src/or/connection_or.c index b3b3cf013..0ddd5f14f 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -20,6 +20,7 @@ #include "control.h" #include "dirserv.h" #include "geoip.h" +#include "main.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/control.c b/src/or/control.c index f8a3f20ec..e1073ab43 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -24,6 +24,7 @@ #include "dnsserv.h" #include "geoip.h" #include "hibernate.h" +#include "main.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index 58257b781..4ab6d4164 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -19,6 +19,7 @@ #include "config.h" #include "connection.h" #include "cpuworker.h" +#include "main.h" #include "router.h" /** The maximum number of cpuworker processes we will keep around. */ diff --git a/src/or/directory.c b/src/or/directory.c index 69700e867..8c7bf4fcd 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -14,6 +14,7 @@ #include "dirserv.h" #include "dirvote.h" #include "geoip.h" +#include "main.h" #include "rendclient.h" #include "rendcommon.h" #include "router.h" diff --git a/src/or/dns.c b/src/or/dns.c index d7184f6e9..7bb2d8ea3 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -19,6 +19,7 @@ #include "connection_edge.h" #include "control.h" #include "dns.h" +#include "main.h" #include "router.h" #include "ht.h" #ifdef HAVE_EVENT2_DNS_H diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c index 317a0afb2..7f9029424 100644 --- a/src/or/dnsserv.c +++ b/src/or/dnsserv.c @@ -14,6 +14,7 @@ #include "connection.h" #include "connection_edge.h" #include "control.h" +#include "main.h" #ifdef HAVE_EVENT2_DNS_H #include #include diff --git a/src/or/hibernate.c b/src/or/hibernate.c index a30e25ee9..d50d05ed5 100644 --- a/src/or/hibernate.c +++ b/src/or/hibernate.c @@ -26,6 +26,7 @@ hibernating, phase 2: #include "connection.h" #include "connection_edge.h" #include "hibernate.h" +#include "main.h" #include "router.h" /** Possible values of hibernate_state */ diff --git a/src/or/main.c b/src/or/main.c index d33072197..ccfd1bc6e 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -30,6 +30,7 @@ #include "dnsserv.h" #include "geoip.h" #include "hibernate.h" +#include "main.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/main.h b/src/or/main.h new file mode 100644 index 000000000..6eeb95449 --- /dev/null +++ b/src/or/main.h @@ -0,0 +1,67 @@ +/* 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 main.h + * \brief Header file for main.c. + **/ + +#ifndef _TOR_MAIN_H +#define _TOR_MAIN_H + +extern int has_completed_circuit; + +int connection_add(connection_t *conn); +int connection_remove(connection_t *conn); +void connection_unregister_events(connection_t *conn); +int connection_in_array(connection_t *conn); +void add_connection_to_closeable_list(connection_t *conn); +int connection_is_on_closeable_list(connection_t *conn); + +smartlist_t *get_connection_array(void); + +typedef enum watchable_events { + READ_EVENT=0x02, + WRITE_EVENT=0x04 +} watchable_events_t; +void connection_watch_events(connection_t *conn, watchable_events_t events); +int connection_is_reading(connection_t *conn); +void connection_stop_reading(connection_t *conn); +void connection_start_reading(connection_t *conn); + +int connection_is_writing(connection_t *conn); +void connection_stop_writing(connection_t *conn); +void connection_start_writing(connection_t *conn); + +void connection_stop_reading_from_linked_conn(connection_t *conn); + +void directory_all_unreachable(time_t now); +void directory_info_has_arrived(time_t now, int from_cache); + +void ip_address_changed(int at_interface); +void dns_servers_relaunch_checks(void); + +void control_signal_act(int the_signal); +void handle_signals(int is_parent); + +int try_locking(or_options_t *options, int err_if_locked); +int have_lockfile(void); +void release_lockfile(void); + +void tor_cleanup(void); +void tor_free_all(int postfork); + +int tor_main(int argc, char *argv[]); + +#ifdef MAIN_PRIVATE +int do_main_loop(void); +int do_list_fingerprint(void); +void do_hash_password(void); +int tor_init(int argc, char **argv); +#endif + +#endif + diff --git a/src/or/or.h b/src/or/or.h index 550331fce..461c55c82 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3268,59 +3268,6 @@ typedef enum { DIRREQ_OR_CONN_BUFFER_FLUSHED = 4 } dirreq_state_t; -/********************************* main.c ***************************/ - -extern int has_completed_circuit; - -int connection_add(connection_t *conn); -int connection_remove(connection_t *conn); -void connection_unregister_events(connection_t *conn); -int connection_in_array(connection_t *conn); -void add_connection_to_closeable_list(connection_t *conn); -int connection_is_on_closeable_list(connection_t *conn); - -smartlist_t *get_connection_array(void); - -typedef enum watchable_events { - READ_EVENT=0x02, - WRITE_EVENT=0x04 -} watchable_events_t; -void connection_watch_events(connection_t *conn, watchable_events_t events); -int connection_is_reading(connection_t *conn); -void connection_stop_reading(connection_t *conn); -void connection_start_reading(connection_t *conn); - -int connection_is_writing(connection_t *conn); -void connection_stop_writing(connection_t *conn); -void connection_start_writing(connection_t *conn); - -void connection_stop_reading_from_linked_conn(connection_t *conn); - -void directory_all_unreachable(time_t now); -void directory_info_has_arrived(time_t now, int from_cache); - -void ip_address_changed(int at_interface); -void dns_servers_relaunch_checks(void); - -void control_signal_act(int the_signal); -void handle_signals(int is_parent); - -int try_locking(or_options_t *options, int err_if_locked); -int have_lockfile(void); -void release_lockfile(void); - -void tor_cleanup(void); -void tor_free_all(int postfork); - -int tor_main(int argc, char *argv[]); - -#ifdef MAIN_PRIVATE -int do_main_loop(void); -int do_list_fingerprint(void); -void do_hash_password(void); -int tor_init(int argc, char **argv); -#endif - /********************************* microdesc.c *************************/ typedef struct microdesc_cache_t microdesc_cache_t; diff --git a/src/or/relay.c b/src/or/relay.c index 5db5cfde8..c362bcbfd 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -21,6 +21,7 @@ #include "connection_or.h" #include "control.h" #include "geoip.h" +#include "main.h" #include "mempool.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/rendclient.c b/src/or/rendclient.c index 92d43bc18..7f5fcefb5 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -15,6 +15,7 @@ #include "connection.h" #include "connection_edge.h" #include "directory.h" +#include "main.h" #include "rendclient.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/router.c b/src/or/router.c index e4ffc2f21..c9501d04e 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -17,6 +17,7 @@ #include "dns.h" #include "geoip.h" #include "hibernate.h" +#include "main.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 0e42acfee..a84ccb853 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -21,6 +21,7 @@ #include "dirvote.h" #include "geoip.h" #include "hibernate.h" +#include "main.h" #include "rendcommon.h" #include "rendservice.h" #include "router.h" -- cgit v1.2.3 From 7bd8dee46371063cd1e62661cd65ce9a35e776e5 Mon Sep 17 00:00:00 2001 From: Sebastian Hahn Date: Fri, 23 Jul 2010 20:51:25 +0200 Subject: Create policies.h --- src/or/circuitbuild.c | 1 + src/or/circuituse.c | 1 + src/or/config.c | 1 + src/or/connection.c | 1 + src/or/connection_edge.c | 1 + src/or/control.c | 1 + src/or/directory.c | 1 + src/or/dirserv.c | 1 + src/or/dirvote.c | 1 + src/or/dns.c | 1 + src/or/dnsserv.c | 1 + src/or/main.c | 1 + src/or/or.h | 44 ----------------------------------- src/or/policies.c | 1 + src/or/policies.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++++ src/or/relay.c | 1 + src/or/router.c | 1 + src/or/routerlist.c | 1 + src/or/routerparse.c | 1 + src/test/test.c | 1 + 20 files changed, 78 insertions(+), 44 deletions(-) create mode 100644 src/or/policies.h (limited to 'src/or/dnsserv.c') diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 00c9026fa..a70effe40 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -24,6 +24,7 @@ #include "main.h" #include "networkstatus.h" #include "onion.h" +#include "policies.h" #include "router.h" #include "routerlist.h" #include "crypto.h" diff --git a/src/or/circuituse.c b/src/or/circuituse.c index 07e3d0bc4..b13e558d0 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -17,6 +17,7 @@ #include "connection.h" #include "connection_edge.h" #include "control.h" +#include "policies.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/config.c b/src/or/config.c index bfec2f41b..02d20129f 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -26,6 +26,7 @@ #include "hibernate.h" #include "main.h" #include "networkstatus.h" +#include "policies.h" #include "rendclient.h" #include "rendservice.h" #include "router.h" diff --git a/src/or/connection.c b/src/or/connection.c index 854a53aaf..e4d158afb 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -27,6 +27,7 @@ #include "dnsserv.h" #include "geoip.h" #include "main.h" +#include "policies.h" #include "rendclient.h" #include "rendcommon.h" #include "router.h" diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 5dff47958..ebc9ec584 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -23,6 +23,7 @@ #include "dirserv.h" #include "hibernate.h" #include "main.h" +#include "policies.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/control.c b/src/or/control.c index 5f5e45fd8..185304813 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -26,6 +26,7 @@ #include "hibernate.h" #include "main.h" #include "networkstatus.h" +#include "policies.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/directory.c b/src/or/directory.c index 057961da8..1c13cbd3d 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -16,6 +16,7 @@ #include "geoip.h" #include "main.h" #include "networkstatus.h" +#include "policies.h" #include "rendclient.h" #include "rendcommon.h" #include "router.h" diff --git a/src/or/dirserv.c b/src/or/dirserv.c index d23542cf6..38fc8f161 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -16,6 +16,7 @@ #include "hibernate.h" #include "microdesc.h" #include "networkstatus.h" +#include "policies.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/dirvote.c b/src/or/dirvote.c index 5b53267ba..7873e49e7 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -11,6 +11,7 @@ #include "dirvote.h" #include "microdesc.h" #include "networkstatus.h" +#include "policies.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/dns.c b/src/or/dns.c index 7bb2d8ea3..f2d3d435d 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -20,6 +20,7 @@ #include "control.h" #include "dns.h" #include "main.h" +#include "policies.h" #include "router.h" #include "ht.h" #ifdef HAVE_EVENT2_DNS_H diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c index 7f9029424..e231b655f 100644 --- a/src/or/dnsserv.c +++ b/src/or/dnsserv.c @@ -15,6 +15,7 @@ #include "connection_edge.h" #include "control.h" #include "main.h" +#include "policies.h" #ifdef HAVE_EVENT2_DNS_H #include #include diff --git a/src/or/main.c b/src/or/main.c index b30a77edd..60bea4900 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -35,6 +35,7 @@ #include "networkstatus.h" #include "ntmain.h" #include "onion.h" +#include "policies.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/or.h b/src/or/or.h index 8322cf3d4..2f2c3002b 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3295,11 +3295,6 @@ typedef enum version_status_t { /********************************* policies.c ************************/ -/* (length of "accept 255.255.255.255/255.255.255.255:65535-65535\n" plus a - * NUL.) - */ -#define POLICY_BUF_LEN 52 - /** Outcome of applying an address policy to an address. */ typedef enum { /** The address was accepted */ @@ -3314,45 +3309,6 @@ typedef enum { ADDR_POLICY_PROBABLY_REJECTED=2 } addr_policy_result_t; -int firewall_is_fascist_or(void); -int fascist_firewall_allows_address_or(const tor_addr_t *addr, uint16_t port); -int fascist_firewall_allows_or(routerinfo_t *ri); -int fascist_firewall_allows_address_dir(const tor_addr_t *addr, uint16_t port); -int dir_policy_permits_address(const tor_addr_t *addr); -int socks_policy_permits_address(const tor_addr_t *addr); -int authdir_policy_permits_address(uint32_t addr, uint16_t port); -int authdir_policy_valid_address(uint32_t addr, uint16_t port); -int authdir_policy_baddir_address(uint32_t addr, uint16_t port); -int authdir_policy_badexit_address(uint32_t addr, uint16_t port); - -int validate_addr_policies(or_options_t *options, char **msg); -void policy_expand_private(smartlist_t **policy); -int policies_parse_from_options(or_options_t *options); - -addr_policy_t *addr_policy_get_canonical_entry(addr_policy_t *ent); -int cmp_addr_policies(smartlist_t *a, smartlist_t *b); -addr_policy_result_t compare_tor_addr_to_addr_policy(const tor_addr_t *addr, - uint16_t port, const smartlist_t *policy); -addr_policy_result_t compare_addr_to_addr_policy(uint32_t addr, - uint16_t port, const smartlist_t *policy); -int policies_parse_exit_policy(config_line_t *cfg, smartlist_t **dest, - int rejectprivate, const char *local_address, - int add_default_policy); -void policies_set_router_exitpolicy_to_reject_all(routerinfo_t *exitrouter); -int exit_policy_is_general_exit(smartlist_t *policy); -int policy_is_reject_star(const smartlist_t *policy); -int getinfo_helper_policies(control_connection_t *conn, - const char *question, char **answer, - const char **errmsg); -int policy_write_item(char *buf, size_t buflen, addr_policy_t *item, - int format_for_desc); - -void addr_policy_list_free(smartlist_t *p); -void addr_policy_free(addr_policy_t *p); -void policies_free_all(void); - -char *policy_summarize(smartlist_t *policy); - /********************************* reasons.c ***************************/ const char *stream_end_reason_to_control_string(int reason); diff --git a/src/or/policies.c b/src/or/policies.c index 72eb16847..cd6307daa 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -11,6 +11,7 @@ #include "or.h" #include "config.h" #include "dirserv.h" +#include "policies.h" #include "ht.h" /** Policy that addresses for incoming SOCKS connections must match. */ diff --git a/src/or/policies.h b/src/or/policies.h new file mode 100644 index 000000000..b99ee797f --- /dev/null +++ b/src/or/policies.h @@ -0,0 +1,60 @@ +/* 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 policies.h + * \brief Header file for policy.c. + **/ + +#ifndef _TOR_POLICIES_H +#define _TOR_POLICIES_H + +/* (length of "accept 255.255.255.255/255.255.255.255:65535-65535\n" plus a + * NUL.) + */ +#define POLICY_BUF_LEN 52 + +int firewall_is_fascist_or(void); +int fascist_firewall_allows_address_or(const tor_addr_t *addr, uint16_t port); +int fascist_firewall_allows_or(routerinfo_t *ri); +int fascist_firewall_allows_address_dir(const tor_addr_t *addr, uint16_t port); +int dir_policy_permits_address(const tor_addr_t *addr); +int socks_policy_permits_address(const tor_addr_t *addr); +int authdir_policy_permits_address(uint32_t addr, uint16_t port); +int authdir_policy_valid_address(uint32_t addr, uint16_t port); +int authdir_policy_baddir_address(uint32_t addr, uint16_t port); +int authdir_policy_badexit_address(uint32_t addr, uint16_t port); + +int validate_addr_policies(or_options_t *options, char **msg); +void policy_expand_private(smartlist_t **policy); +int policies_parse_from_options(or_options_t *options); + +addr_policy_t *addr_policy_get_canonical_entry(addr_policy_t *ent); +int cmp_addr_policies(smartlist_t *a, smartlist_t *b); +addr_policy_result_t compare_tor_addr_to_addr_policy(const tor_addr_t *addr, + uint16_t port, const smartlist_t *policy); +addr_policy_result_t compare_addr_to_addr_policy(uint32_t addr, + uint16_t port, const smartlist_t *policy); +int policies_parse_exit_policy(config_line_t *cfg, smartlist_t **dest, + int rejectprivate, const char *local_address, + int add_default_policy); +void policies_set_router_exitpolicy_to_reject_all(routerinfo_t *exitrouter); +int exit_policy_is_general_exit(smartlist_t *policy); +int policy_is_reject_star(const smartlist_t *policy); +int getinfo_helper_policies(control_connection_t *conn, + const char *question, char **answer, + const char **errmsg); +int policy_write_item(char *buf, size_t buflen, addr_policy_t *item, + int format_for_desc); + +void addr_policy_list_free(smartlist_t *p); +void addr_policy_free(addr_policy_t *p); +void policies_free_all(void); + +char *policy_summarize(smartlist_t *policy); + +#endif + diff --git a/src/or/relay.c b/src/or/relay.c index 83f875428..f0801bf81 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -24,6 +24,7 @@ #include "main.h" #include "mempool.h" #include "networkstatus.h" +#include "policies.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/router.c b/src/or/router.c index c9501d04e..4a1891699 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -18,6 +18,7 @@ #include "geoip.h" #include "hibernate.h" #include "main.h" +#include "policies.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/routerlist.c b/src/or/routerlist.c index f189943a1..1fb3dbc40 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -23,6 +23,7 @@ #include "hibernate.h" #include "main.h" #include "networkstatus.h" +#include "policies.h" #include "rendcommon.h" #include "rendservice.h" #include "router.h" diff --git a/src/or/routerparse.c b/src/or/routerparse.c index a7df1f5e0..0662fd3a1 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -13,6 +13,7 @@ #include "config.h" #include "dirserv.h" #include "dirvote.h" +#include "policies.h" #include "rendcommon.h" #include "router.h" #include "routerlist.h" diff --git a/src/test/test.c b/src/test/test.c index a1e286819..b5c908a21 100644 --- a/src/test/test.c +++ b/src/test/test.c @@ -54,6 +54,7 @@ double fabs(double x); #include "mempool.h" #include "memarea.h" #include "onion.h" +#include "policies.h" #ifdef USE_DMALLOC #include -- cgit v1.2.3