add another heuristic for changes stanzas
[tor.git] / src / or / geoip.h
blob24f7c5b93103058acdb2c87b6f260d012f4d86bc
1 /* Copyright (c) 2001 Matej Pfajfar.
2 * Copyright (c) 2001-2004, Roger Dingledine.
3 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
4 * Copyright (c) 2007-2011, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
7 /**
8 * \file geoip.h
9 * \brief Header file for geoip.c.
10 **/
12 #ifndef _TOR_GEOIP_H
13 #define _TOR_GEOIP_H
15 #ifdef GEOIP_PRIVATE
16 int geoip_parse_entry(const char *line);
17 #endif
18 int should_record_bridge_info(or_options_t *options);
19 int geoip_load_file(const char *filename, or_options_t *options);
20 int geoip_get_country_by_ip(uint32_t ipaddr);
21 int geoip_get_n_countries(void);
22 const char *geoip_get_country_name(country_t num);
23 int geoip_is_loaded(void);
24 country_t geoip_get_country(const char *countrycode);
26 void geoip_note_client_seen(geoip_client_action_t action,
27 uint32_t addr, time_t now);
28 void geoip_remove_old_clients(time_t cutoff);
30 void geoip_note_ns_response(geoip_client_action_t action,
31 geoip_ns_response_t response);
32 char *geoip_get_client_history(geoip_client_action_t action);
33 char *geoip_get_request_history(geoip_client_action_t action);
34 int getinfo_helper_geoip(control_connection_t *control_conn,
35 const char *question, char **answer,
36 const char **errmsg);
37 void geoip_free_all(void);
39 void geoip_start_dirreq(uint64_t dirreq_id, size_t response_size,
40 geoip_client_action_t action, dirreq_type_t type);
41 void geoip_change_dirreq_state(uint64_t dirreq_id, dirreq_type_t type,
42 dirreq_state_t new_state);
44 void geoip_dirreq_stats_init(time_t now);
45 time_t geoip_dirreq_stats_write(time_t now);
46 void geoip_dirreq_stats_term(void);
47 void geoip_entry_stats_init(time_t now);
48 time_t geoip_entry_stats_write(time_t now);
49 void geoip_entry_stats_term(void);
50 void geoip_bridge_stats_init(time_t now);
51 time_t geoip_bridge_stats_write(time_t now);
52 void geoip_bridge_stats_term(void);
53 const char *geoip_get_bridge_stats_extrainfo(time_t);
54 char *geoip_get_bridge_stats_controller(time_t);
56 #endif