Skip to content

Commit fe12385

Browse files
defanatorzimmerle
authored andcommitted
GeoIP: switch to GEOIP_MEMORY_CACHE from GEOIP_INDEX_CACHE
Using GEOIP_INDEX_CACHE on some older versions of libGeoIP (e.g. 1.5.0 which is the default version on CentOS 7) leads to "Error reading file" error while opening completely valid GeoIP.dat: # cat test.c #include <stdio.h> #include "GeoIP.h" int main(void) { GeoIP *g; g = GeoIP_open("/tmp/GeoIP.dat", GEOIP_INDEX_CACHE); if (g == NULL) { printf("error!\n"); } GeoIP_delete(g); exit(0); } # cc -lGeoIP -o test test.c # ./test Error reading file /tmp/GeoIP.dat error! # sed -i -e 's,GEOIP_INDEX_CACHE,GEOIP_MEMORY_CACHE,' test.c # cc -lGeoIP -o test test.c # ./test # geoiplookup -f /tmp/GeoIP.dat -v 8.8.8.8 GeoIP Country Edition: GEO-106FREE 20180327 Build 1 Copyright (c) 2018 MaxMind Inc All Rights Reserved Also tested with recent GeoLite databases converted from new format into legacy format, distributed here: https://mailfud.org/geoip-legacy/
1 parent 0eb3c12 commit fe12385

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/utils/geo_lookup.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ bool GeoLookup::setDataBase(const std::string& filePath,
7070

7171
#ifdef WITH_GEOIP
7272
if (m_version == NOT_LOADED) {
73-
m_gi = GeoIP_open(filePath.c_str(), GEOIP_INDEX_CACHE);
73+
m_gi = GeoIP_open(filePath.c_str(), GEOIP_MEMORY_CACHE);
7474
if (m_gi == NULL) {
7575
intGeo.append("GeoIP: Can't open: " + filePath + ".");
7676
} else {

0 commit comments

Comments
 (0)