Sebastian Hahn 14 rokov pred
rodič
commit
ff4030f621

+ 1 - 0
src/or/config.c

@@ -12,6 +12,7 @@
 #define CONFIG_PRIVATE
 
 #include "or.h"
+#include "geoip.h"
 #ifdef MS_WINDOWS
 #include <shlobj.h>
 #endif

+ 1 - 0
src/or/connection.c

@@ -12,6 +12,7 @@
 
 #include "or.h"
 #include "dnsserv.h"
+#include "geoip.h"
 
 static connection_t *connection_create_listener(
                                struct sockaddr *listensockaddr,

+ 1 - 0
src/or/connection_or.c

@@ -11,6 +11,7 @@
  **/
 
 #include "or.h"
+#include "geoip.h"
 
 static int connection_tls_finish_handshake(or_connection_t *conn);
 static int connection_or_process_cells_from_inbuf(or_connection_t *conn);

+ 1 - 0
src/or/control.c

@@ -12,6 +12,7 @@
 
 #include "or.h"
 #include "dnsserv.h"
+#include "geoip.h"
 
 /** Yield true iff <b>s</b> is the state of a control_connection_t that has
  * finished authentication and is accepting commands. */

+ 2 - 0
src/or/directory.c

@@ -4,6 +4,8 @@
 /* See LICENSE for licensing information */
 
 #include "or.h"
+#include "geoip.h"
+
 #if defined(EXPORTMALLINFO) && defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
 #ifndef OPENBSD
 #include <malloc.h>

+ 1 - 0
src/or/geoip.c

@@ -11,6 +11,7 @@
 #include "or.h"
 #include "ht.h"
 #include "dnsserv.h"
+#include "geoip.h"
 
 static void clear_geoip_db(void);
 

+ 58 - 0
src/or/geoip.h

@@ -0,0 +1,58 @@
+/* Copyright (c) 2001 Matej Pfajfar.
+ * Copyright (c) 2001-2004, Roger Dingledine.
+ * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
+ * Copyright (c) 2007-2010, The Tor Project, Inc. */
+/* See LICENSE for licensing information */
+
+/**
+ * \file geoip.h
+ * \brief Header file for geoip.c.
+ **/
+
+#ifndef _TOR_GEOIP_H
+#define _TOR_GEOIP_H
+
+#ifdef GEOIP_PRIVATE
+int geoip_parse_entry(const char *line);
+#endif
+int should_record_bridge_info(or_options_t *options);
+int geoip_load_file(const char *filename, or_options_t *options);
+int geoip_get_country_by_ip(uint32_t ipaddr);
+int geoip_get_n_countries(void);
+const char *geoip_get_country_name(country_t num);
+int geoip_is_loaded(void);
+country_t geoip_get_country(const char *countrycode);
+
+void geoip_note_client_seen(geoip_client_action_t action,
+                            uint32_t addr, time_t now);
+void geoip_remove_old_clients(time_t cutoff);
+
+void geoip_note_ns_response(geoip_client_action_t action,
+                            geoip_ns_response_t response);
+time_t geoip_get_history_start(void);
+char *geoip_get_client_history_dirreq(time_t now,
+                                      geoip_client_action_t action);
+char *geoip_get_client_history_bridge(time_t now,
+                                      geoip_client_action_t action);
+char *geoip_get_request_history(time_t now, geoip_client_action_t action);
+int getinfo_helper_geoip(control_connection_t *control_conn,
+                         const char *question, char **answer,
+                         const char **errmsg);
+void geoip_free_all(void);
+
+void geoip_start_dirreq(uint64_t dirreq_id, size_t response_size,
+                        geoip_client_action_t action, dirreq_type_t type);
+void geoip_change_dirreq_state(uint64_t dirreq_id, dirreq_type_t type,
+                               dirreq_state_t new_state);
+
+void geoip_dirreq_stats_init(time_t now);
+void geoip_dirreq_stats_write(time_t now);
+void geoip_entry_stats_init(time_t now);
+void geoip_entry_stats_write(time_t now);
+void geoip_bridge_stats_init(time_t now);
+time_t geoip_bridge_stats_write(time_t now);
+const char *geoip_get_bridge_stats_extrainfo(time_t);
+const char *geoip_get_bridge_stats_controller(time_t);
+
+#endif
+

+ 1 - 0
src/or/main.c

@@ -13,6 +13,7 @@
 #define MAIN_PRIVATE
 #include "or.h"
 #include "dnsserv.h"
+#include "geoip.h"
 #ifdef USE_DMALLOC
 #include <dmalloc.h>
 #include <openssl/crypto.h>

+ 0 - 39
src/or/or.h

@@ -4103,16 +4103,6 @@ void dump_dns_mem_usage(int severity);
  * we are willing to talk about it? */
 #define DIR_RECORD_USAGE_MIN_OBSERVATION_TIME (12*60*60)
 
-#ifdef GEOIP_PRIVATE
-int geoip_parse_entry(const char *line);
-#endif
-int should_record_bridge_info(or_options_t *options);
-int geoip_load_file(const char *filename, or_options_t *options);
-int geoip_get_country_by_ip(uint32_t ipaddr);
-int geoip_get_n_countries(void);
-const char *geoip_get_country_name(country_t num);
-int geoip_is_loaded(void);
-country_t geoip_get_country(const char *countrycode);
 /** Indicates an action that we might be noting geoip statistics on.
  * Note that if we're noticing CONNECT, we're a bridge, and if we're noticing
  * the others, we're not.
@@ -4125,9 +4115,6 @@ typedef enum {
   /** We've served a v2 networkstatus consensus as a directory server. */
   GEOIP_CLIENT_NETWORKSTATUS_V2 = 2,
 } geoip_client_action_t;
-void geoip_note_client_seen(geoip_client_action_t action,
-                            uint32_t addr, time_t now);
-void geoip_remove_old_clients(time_t cutoff);
 /** Indicates either a positive reply or a reason for rejectng a network
  * status request that will be included in geoip statistics. */
 typedef enum {
@@ -4146,18 +4133,6 @@ typedef enum {
   GEOIP_REJECT_BUSY = 5,
 } geoip_ns_response_t;
 #define GEOIP_NS_RESPONSE_NUM 6
-void geoip_note_ns_response(geoip_client_action_t action,
-                            geoip_ns_response_t response);
-time_t geoip_get_history_start(void);
-char *geoip_get_client_history_dirreq(time_t now,
-                                      geoip_client_action_t action);
-char *geoip_get_client_history_bridge(time_t now,
-                                      geoip_client_action_t action);
-char *geoip_get_request_history(time_t now, geoip_client_action_t action);
-int getinfo_helper_geoip(control_connection_t *control_conn,
-                         const char *question, char **answer,
-                         const char **errmsg);
-void geoip_free_all(void);
 
 /** Directory requests that we are measuring can be either direct or
  * tunneled. */
@@ -4188,20 +4163,6 @@ typedef enum {
   DIRREQ_OR_CONN_BUFFER_FLUSHED = 4
 } dirreq_state_t;
 
-void geoip_start_dirreq(uint64_t dirreq_id, size_t response_size,
-                        geoip_client_action_t action, dirreq_type_t type);
-void geoip_change_dirreq_state(uint64_t dirreq_id, dirreq_type_t type,
-                               dirreq_state_t new_state);
-
-void geoip_dirreq_stats_init(time_t now);
-void geoip_dirreq_stats_write(time_t now);
-void geoip_entry_stats_init(time_t now);
-void geoip_entry_stats_write(time_t now);
-void geoip_bridge_stats_init(time_t now);
-time_t geoip_bridge_stats_write(time_t now);
-const char *geoip_get_bridge_stats_extrainfo(time_t);
-const char *geoip_get_bridge_stats_controller(time_t);
-
 /********************************* hibernate.c **********************/
 
 int accounting_parse_options(or_options_t *options, int validate_only);

+ 1 - 0
src/or/relay.c

@@ -12,6 +12,7 @@
 
 #include <math.h>
 #include "or.h"
+#include "geoip.h"
 #include "mempool.h"
 
 static int relay_crypt(circuit_t *circ, cell_t *cell,

+ 1 - 0
src/or/router.c

@@ -7,6 +7,7 @@
 #define ROUTER_PRIVATE
 
 #include "or.h"
+#include "geoip.h"
 
 /**
  * \file router.c

+ 1 - 0
src/or/routerlist.c

@@ -12,6 +12,7 @@
  **/
 
 #include "or.h"
+#include "geoip.h"
 
 // #define DEBUG_ROUTERLIST
 

+ 1 - 0
src/test/test.c

@@ -43,6 +43,7 @@ long int lround(double x);
 double fabs(double x);
 
 #include "or.h"
+#include "geoip.h"
 #include "test.h"
 #include "torgzip.h"
 #include "mempool.h"