Mon, 04 Jan 2016 17:05:19 +0000
geoip: Improved logging
19
fd7b581560d5
Add error logging when loading geoip
Matthew Wild <mwild1@gmail.com>
parents:
16
diff
changeset
|
1 | local log = require "util.logger".init("geoip"); |
fd7b581560d5
Add error logging when loading geoip
Matthew Wild <mwild1@gmail.com>
parents:
16
diff
changeset
|
2 | |
fd7b581560d5
Add error logging when loading geoip
Matthew Wild <mwild1@gmail.com>
parents:
16
diff
changeset
|
3 | local ok, err = pcall(function () |
16
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 | local city_db_path = os.getenv("GEOIP_CITY_DB"); |
20 | 5 | if not city_db_path then |
6 | log("debug", "GEOIP_CITY_DB not set"); | |
7 | return; | |
8 | end | |
16
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 | |
20 | 10 | log("debug", "Loading geoip database"); |
16
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 | local city_db = assert(require "geoip.city".open(city_db_path)); |
20 | 12 | log("debug", "Loaded geoip database successfully"); |
13 | ||
16
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 | events.add_handler("new-client", function (info) |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 | local ip = info.conn:ip(); |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 | local location = city_db:query_by_addr(ip); |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 | if location then |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 | local l = {}; |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 | if location.city_name then |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 | table.insert(l, location.city_name); |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 | end |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 | if location.region then |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 | table.insert(l, location.region); |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 | end |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 | if location.country_name then |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 | table.insert(l, location.country_name); |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 | end |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 | conn.location = table.concat(l, ", "); |
20 | 29 | else |
30 | log("debug", "Failed to find location for IP %q: %s", tostring(ip), tostring(err)); | |
16
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 | end |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
32 | end); |
d35376a53644
main, geoip: Add GeoIP lookup support for watcher info
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
33 | end) |
19
fd7b581560d5
Add error logging when loading geoip
Matthew Wild <mwild1@gmail.com>
parents:
16
diff
changeset
|
34 | |
fd7b581560d5
Add error logging when loading geoip
Matthew Wild <mwild1@gmail.com>
parents:
16
diff
changeset
|
35 | if not ok then |
fd7b581560d5
Add error logging when loading geoip
Matthew Wild <mwild1@gmail.com>
parents:
16
diff
changeset
|
36 | log("warn", "GeoIP loading failed: %s", tostring(err)); |
fd7b581560d5
Add error logging when loading geoip
Matthew Wild <mwild1@gmail.com>
parents:
16
diff
changeset
|
37 | end |