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-2010, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
9 * \brief Header file for geoip.c.
16 int geoip_parse_entry(const char *line
);
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
,
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 const char *geoip_get_bridge_stats_controller(time_t);