[tor-commits] [tor/master] Extract the non-stats part of geoip into a new src/lib/geoip.

nickm at torproject.org nickm at torproject.org
Thu Sep 27 20:30:06 UTC 2018


commit c8f2a6d2fe17fb1c02116fddaa93ded0ce655af9
Author: Nick Mathewson <nickm at torproject.org>
Date:   Thu Sep 27 10:26:01 2018 -0400

    Extract the non-stats part of geoip into a new src/lib/geoip.
---
 .gitignore                               |  2 ++
 Makefile.am                              |  2 ++
 src/app/config/config.c                  |  2 +-
 src/app/main/main.c                      |  2 +-
 src/core/include.am                      |  2 --
 src/core/mainloop/connection.c           |  2 +-
 src/core/or/connection_or.c              |  2 +-
 src/core/or/or.h                         |  4 +---
 src/core/or/policies.c                   |  2 +-
 src/feature/control/getinfo_geoip.c      |  2 +-
 src/feature/nodelist/nodelist.c          |  2 +-
 src/feature/nodelist/routerset.c         |  2 +-
 src/feature/relay/router.c               |  2 +-
 src/feature/stats/geoip_stats.c          |  2 +-
 src/include.am                           |  1 +
 src/lib/geoip/.may_include               | 12 ++++++++++++
 src/lib/geoip/country.h                  | 14 ++++++++++++++
 src/{feature/stats => lib/geoip}/geoip.c |  8 +-------
 src/{feature/stats => lib/geoip}/geoip.h |  2 +-
 src/lib/geoip/include.am                 | 17 +++++++++++++++++
 src/test/test_config.c                   |  2 +-
 src/test/test_dir_handle_get.c           |  2 +-
 src/test/test_geoip.c                    |  2 +-
 src/test/test_options.c                  |  2 +-
 src/test/test_routerset.c                |  2 +-
 25 files changed, 66 insertions(+), 28 deletions(-)

diff --git a/.gitignore b/.gitignore
index 1cd99dfd3..cedff8fb3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -173,6 +173,8 @@ uptime-*.json
 /src/lib/libtor-fdio-testing.a
 /src/lib/libtor-fs.a
 /src/lib/libtor-fs-testing.a
+/src/lib/libtor-geoip.a
+/src/lib/libtor-geoip-testing.a
 /src/lib/libtor-intmath.a
 /src/lib/libtor-intmath-testing.a
 /src/lib/libtor-lock.a
diff --git a/Makefile.am b/Makefile.am
index 36a5dd2e9..a0f513c75 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -40,6 +40,7 @@ endif
 
 # "Common" libraries used to link tor's utility code.
 TOR_UTIL_LIBS = \
+        src/lib/libtor-geoip.a \
 	src/lib/libtor-process.a \
 	src/lib/libtor-time.a \
 	src/lib/libtor-fs.a \
@@ -68,6 +69,7 @@ TOR_UTIL_LIBS = \
 # and tests)
 if UNITTESTS_ENABLED
 TOR_UTIL_TESTING_LIBS = \
+        src/lib/libtor-geoip-testing.a \
 	src/lib/libtor-process-testing.a \
 	src/lib/libtor-time-testing.a \
 	src/lib/libtor-fs-testing.a \
diff --git a/src/app/config/config.c b/src/app/config/config.c
index 53cc9c0ac..d44b17ce6 100644
--- a/src/app/config/config.c
+++ b/src/app/config/config.c
@@ -103,7 +103,7 @@
 #include "feature/relay/routermode.h"
 #include "feature/rend/rendclient.h"
 #include "feature/rend/rendservice.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/stats/geoip_stats.h"
 #include "feature/stats/predict_ports.h"
 #include "feature/stats/rephist.h"
diff --git a/src/app/main/main.c b/src/app/main/main.c
index 2266a5ff7..8a24df210 100644
--- a/src/app/main/main.c
+++ b/src/app/main/main.c
@@ -61,7 +61,7 @@
 #include "feature/rend/rendcache.h"
 #include "feature/rend/rendclient.h"
 #include "feature/rend/rendservice.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/stats/geoip_stats.h"
 #include "feature/stats/predict_ports.h"
 #include "feature/stats/rephist.h"
diff --git a/src/core/include.am b/src/core/include.am
index 1a26a65c2..e51819fa2 100644
--- a/src/core/include.am
+++ b/src/core/include.am
@@ -117,7 +117,6 @@ LIBTOR_APP_A_SOURCES = 				\
 	src/feature/rend/rendcommon.c		\
 	src/feature/rend/rendmid.c		\
 	src/feature/rend/rendservice.c		\
-	src/feature/stats/geoip.c		\
 	src/feature/stats/geoip_stats.c		\
 	src/feature/stats/rephist.c		\
 	src/feature/stats/predict_ports.c
@@ -350,7 +349,6 @@ noinst_HEADERS +=					\
 	src/feature/rend/rendcommon.h			\
 	src/feature/rend/rendmid.h			\
 	src/feature/rend/rendservice.h			\
-	src/feature/stats/geoip.h			\
 	src/feature/stats/geoip_stats.h			\
 	src/feature/stats/rephist.h			\
 	src/feature/stats/predict_ports.h
diff --git a/src/core/mainloop/connection.c b/src/core/mainloop/connection.c
index 18863fc04..d8326a5be 100644
--- a/src/core/mainloop/connection.c
+++ b/src/core/mainloop/connection.c
@@ -102,7 +102,7 @@
 #include "feature/relay/routermode.h"
 #include "feature/rend/rendclient.h"
 #include "feature/rend/rendcommon.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/stats/rephist.h"
 #include "lib/crypt_ops/crypto_util.h"
 
diff --git a/src/core/or/connection_or.c b/src/core/or/connection_or.c
index 4a724a24d..65f4e28c9 100644
--- a/src/core/or/connection_or.c
+++ b/src/core/or/connection_or.c
@@ -43,7 +43,7 @@
 #include "lib/crypt_ops/crypto_util.h"
 #include "feature/dirauth/reachability.h"
 #include "feature/client/entrynodes.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "core/mainloop/mainloop.h"
 #include "trunnel/link_handshake.h"
 #include "feature/nodelist/microdesc.h"
diff --git a/src/core/or/or.h b/src/core/or/or.h
index 7557c1321..acf092c8d 100644
--- a/src/core/or/or.h
+++ b/src/core/or/or.h
@@ -41,6 +41,7 @@
 #include "lib/fs/mmap.h"
 #include "lib/fs/path.h"
 #include "lib/fs/userdb.h"
+#include "lib/geoip/country.h"
 #include "lib/intmath/addsub.h"
 #include "lib/intmath/bits.h"
 #include "lib/intmath/cmp.h"
@@ -798,9 +799,6 @@ typedef struct download_status_t download_status_t;
 
 typedef struct signed_descriptor_t signed_descriptor_t;
 
-/** A signed integer representing a country code. */
-typedef int16_t country_t;
-
 /** Flags used to summarize the declared protocol versions of a relay,
  * so we don't need to parse them again and again. */
 typedef struct protover_summary_flags_t {
diff --git a/src/core/or/policies.c b/src/core/or/policies.c
index fc359627b..c3fded1fb 100644
--- a/src/core/or/policies.c
+++ b/src/core/or/policies.c
@@ -27,7 +27,7 @@
 #include "feature/relay/router.h"
 #include "feature/relay/routermode.h"
 #include "feature/nodelist/routerparse.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "ht.h"
 #include "lib/encoding/confline.h"
 
diff --git a/src/feature/control/getinfo_geoip.c b/src/feature/control/getinfo_geoip.c
index 35eb3f6ae..d188725fa 100644
--- a/src/feature/control/getinfo_geoip.c
+++ b/src/feature/control/getinfo_geoip.c
@@ -3,7 +3,7 @@
 #include "core/mainloop/connection.h"
 #include "feature/control/control.h"
 #include "feature/control/getinfo_geoip.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 
 /** Helper used to implement GETINFO ip-to-country/... controller command. */
 int
diff --git a/src/feature/nodelist/nodelist.c b/src/feature/nodelist/nodelist.c
index e3b77d562..90ca579b7 100644
--- a/src/feature/nodelist/nodelist.c
+++ b/src/feature/nodelist/nodelist.c
@@ -65,7 +65,7 @@
 #include "feature/nodelist/routerset.h"
 #include "feature/nodelist/torcert.h"
 #include "feature/rend/rendservice.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "lib/net/address.h"
 
 #include <string.h>
diff --git a/src/feature/nodelist/routerset.c b/src/feature/nodelist/routerset.c
index 08124835a..cb07a436d 100644
--- a/src/feature/nodelist/routerset.c
+++ b/src/feature/nodelist/routerset.c
@@ -34,7 +34,7 @@ n * Copyright (c) 2001-2004, Roger Dingledine.
 #include "feature/nodelist/nodelist.h"
 #include "feature/nodelist/routerparse.h"
 #include "feature/nodelist/routerset.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 
 #include "core/or/addr_policy_st.h"
 #include "core/or/extend_info_st.h"
diff --git a/src/feature/relay/router.c b/src/feature/relay/router.c
index 494634845..fdaadb205 100644
--- a/src/feature/relay/router.c
+++ b/src/feature/relay/router.c
@@ -36,7 +36,7 @@
 #include "feature/relay/routerkeys.h"
 #include "feature/relay/routermode.h"
 #include "feature/relay/selftest.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/stats/geoip_stats.h"
 #include "feature/stats/rephist.h"
 #include "lib/crypt_ops/crypto_ed25519.h"
diff --git a/src/feature/stats/geoip_stats.c b/src/feature/stats/geoip_stats.c
index 4af2ff0ec..d1a5dd79b 100644
--- a/src/feature/stats/geoip_stats.c
+++ b/src/feature/stats/geoip_stats.c
@@ -35,7 +35,7 @@
 #include "feature/control/control.h"
 #include "feature/client/dnsserv.h"
 #include "core/or/dos.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/stats/geoip_stats.h"
 #include "feature/nodelist/routerlist.h"
 
diff --git a/src/include.am b/src/include.am
index b5cca7e30..d2f83da81 100644
--- a/src/include.am
+++ b/src/include.am
@@ -11,6 +11,7 @@ include src/lib/encoding/include.am
 include src/lib/evloop/include.am
 include src/lib/fdio/include.am
 include src/lib/fs/include.am
+include src/lib/geoip/include.am
 include src/lib/include.libdonna.am
 include src/lib/intmath/include.am
 include src/lib/lock/include.am
diff --git a/src/lib/geoip/.may_include b/src/lib/geoip/.may_include
new file mode 100644
index 000000000..63207125b
--- /dev/null
+++ b/src/lib/geoip/.may_include
@@ -0,0 +1,12 @@
+lib/cc/*.h
+lib/container/*.h
+lib/crypt_ops/*.h
+lib/ctime/*.h
+lib/encoding/*.h
+lib/fs/*.h
+lib/geoip/*.h
+lib/log/*.h
+lib/malloc/*.h
+lib/net/*.h
+lib/string/*.h
+lib/testsupport/*.h
diff --git a/src/lib/geoip/country.h b/src/lib/geoip/country.h
new file mode 100644
index 000000000..e4ad0752b
--- /dev/null
+++ b/src/lib/geoip/country.h
@@ -0,0 +1,14 @@
+/* Copyright (c) 2001 Matej Pfajfar.
+ * Copyright (c) 2001-2004, Roger Dingledine.
+ * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
+ * Copyright (c) 2007-2018, The Tor Project, Inc. */
+/* See LICENSE for licensing information */
+
+#ifndef TOR_COUNTRY_H
+#define TOR_COUNTRY_H
+
+#include "lib/cc/torint.h"
+/** A signed integer representing a country code. */
+typedef int16_t country_t;
+
+#endif
diff --git a/src/feature/stats/geoip.c b/src/lib/geoip/geoip.c
similarity index 98%
rename from src/feature/stats/geoip.c
rename to src/lib/geoip/geoip.c
index 496615080..b1c0973d0 100644
--- a/src/feature/stats/geoip.c
+++ b/src/lib/geoip/geoip.c
@@ -28,12 +28,7 @@
  */
 
 #define GEOIP_PRIVATE
-
-#include "lib/cc/torint.h"
-/** A signed integer representing a country code. */
-typedef int16_t country_t; // XXXX duplicate in or.h
-
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "lib/container/map.h"
 #include "lib/container/order.h"
 #include "lib/container/smartlist.h"
@@ -49,7 +44,6 @@ typedef int16_t country_t; // XXXX duplicate in or.h
 #include "lib/string/compat_string.h"
 #include "lib/string/scanf.h"
 #include "lib/string/util_string.h"
-#include "lib/time/tvdiff.h"
 
 #include <stdio.h>
 #include <string.h>
diff --git a/src/feature/stats/geoip.h b/src/lib/geoip/geoip.h
similarity index 97%
rename from src/feature/stats/geoip.h
rename to src/lib/geoip/geoip.h
index 1ca04cdff..3c1238c31 100644
--- a/src/feature/stats/geoip.h
+++ b/src/lib/geoip/geoip.h
@@ -14,7 +14,7 @@
 
 #include "lib/net/nettypes.h"
 #include "lib/testsupport/testsupport.h"
-#include "lib/cc/torint.h"
+#include "lib/geoip/country.h"
 
 #ifdef GEOIP_PRIVATE
 STATIC int geoip_parse_entry(const char *line, sa_family_t family);
diff --git a/src/lib/geoip/include.am b/src/lib/geoip/include.am
new file mode 100644
index 000000000..9710d75ac
--- /dev/null
+++ b/src/lib/geoip/include.am
@@ -0,0 +1,17 @@
+noinst_LIBRARIES += src/lib/libtor-geoip.a
+
+if UNITTESTS_ENABLED
+noinst_LIBRARIES += src/lib/libtor-geoip-testing.a
+endif
+
+src_lib_libtor_geoip_a_SOURCES =			\
+	src/lib/geoip/geoip.c
+
+src_lib_libtor_geoip_testing_a_SOURCES = \
+	$(src_lib_libtor_geoip_a_SOURCES)
+src_lib_libtor_geoip_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS)
+src_lib_libtor_geoip_testing_a_CFLAGS = $(AM_CFLAGS) $(TEST_CFLAGS)
+
+noinst_HEADERS +=					\
+	src/lib/geoip/geoip.h   			\
+	src/lib/geoip/country.h
diff --git a/src/test/test_config.c b/src/test/test_config.c
index 77c0d248c..dae4d8376 100644
--- a/src/test/test_config.c
+++ b/src/test/test_config.c
@@ -29,7 +29,7 @@
 #include "feature/client/entrynodes.h"
 #include "feature/client/transports.h"
 #include "feature/relay/ext_orport.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/hibernate/hibernate.h"
 #include "core/mainloop/mainloop.h"
 #include "feature/nodelist/networkstatus.h"
diff --git a/src/test/test_dir_handle_get.c b/src/test/test_dir_handle_get.c
index 7f7a00abd..623d9e9b9 100644
--- a/src/test/test_dir_handle_get.c
+++ b/src/test/test_dir_handle_get.c
@@ -32,7 +32,7 @@
 #include "feature/nodelist/routerparse.h"
 #include "feature/nodelist/networkstatus.h"
 #include "core/proto/proto_http.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/stats/geoip_stats.h"
 #include "feature/dircache/dirserv.h"
 #include "feature/dirauth/dirvote.h"
diff --git a/src/test/test_geoip.c b/src/test/test_geoip.c
index 5e2849147..6f9c39063 100644
--- a/src/test/test_geoip.c
+++ b/src/test/test_geoip.c
@@ -10,7 +10,7 @@
 #define GEOIP_PRIVATE
 #include "core/or/or.h"
 #include "app/config/config.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/stats/geoip_stats.h"
 #include "test/test.h"
 
diff --git a/src/test/test_options.c b/src/test/test_options.c
index a4de0e992..f14e620ee 100644
--- a/src/test/test_options.c
+++ b/src/test/test_options.c
@@ -8,7 +8,7 @@
 #include "app/config/confparse.h"
 #include "app/config/config.h"
 #include "test/test.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 
 #define ROUTERSET_PRIVATE
 #include "feature/nodelist/routerset.h"
diff --git a/src/test/test_routerset.c b/src/test/test_routerset.c
index 2017ef005..fede419f0 100644
--- a/src/test/test_routerset.c
+++ b/src/test/test_routerset.c
@@ -4,7 +4,7 @@
 #define ROUTERSET_PRIVATE
 
 #include "core/or/or.h"
-#include "feature/stats/geoip.h"
+#include "lib/geoip/geoip.h"
 #include "feature/nodelist/routerset.h"
 #include "feature/nodelist/routerparse.h"
 #include "core/or/policies.h"





More information about the tor-commits mailing list