summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog973
1 files changed, 973 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..b6b2ca0
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,973 @@
+1.6.12 2018-01-17
+
+* Populate metro and area code when performing lookups in IPv6 City databases.
+ Previously this was only done when using IPv4 City databases.
+
+1.6.11 2017-05-15
+
+* Fix use of a NULL pointer when opening a corrupt database with
+ `GeoIP_open`. Reported by Stephan Zeisberg. GitHub #87.
+
+1.6.10 2017-03-29
+
+* GeoIP_database_info now returns the full version string rather than
+ incorrectly truncating it. GitHub #79.
+* This API is now distributed with a small test copy of GeoIP.dat rather than
+ a full copy.
+* Fix issue where Visual Studio 2015 was optimizing out initialization code.
+ Reported and fixed by Scott Godin. GitHub #81.
+* Fix test/benchmark on Windows. Gisle Vanem. GitHub #75.
+
+1.6.9 2016-01-11
+
+* Fix a regression introduced in version 1.6.8, which caused
+ GeoIP_database_info to erroneously return NULL.
+
+1.6.8 2016-01-11
+
+* Allow compilation on older systems by relaxing the autoconf and automake
+ minimum versions. Thank you, Jose Rubio!
+* Avoid potential problems in multi-threaded environments by consistently using
+ pread() rather than read().
+* Fix various small issues reported by clang's static analyser.
+
+1.6.7 2015-10-30
+
+* Fixed a MSVC parser stack overflow when parsing `regionName.c` and
+ `timeZone.c`. Fix by elliotlo. GitHub #64.
+* Updated region codes and timezones.
+* When using `GEOIP_MEMORY_CACHE` with an invalid database file, the search
+ tree traversal could attempt to read memory outside of the memory allocated
+ for the memory cache, resulting in a segmentation fault. A check was added
+ to ensure that the traversal code does not try to read beyond the end of the
+ file, whether in memory, memory mapped, or on disk.
+* Previously the return values from file reads were ignored. We now check
+ these values to ensure that there were no errors.
+
+
+1.6.6 2015-07-28
+
+* Replaced usage of deprecated fileno, read, and lseek on Visual Studio 2005+
+ with their ISO C++ conformant replacements. (Fix by ClaudiuHKS. GitHub #55.)
+* A warning about using a double as a float was fixed. (Fix by ClaudiuHKS.
+ GitHub #56.)
+* Fixed segfault when doing a lookup on an empty database. (Fix by NesoK.
+ GitHub #62.)
+* Fixed a memcheck error from valgrind in the `_check_mtime`
+ function. (Reported by yurivct. GitHub #60.)
+* Fixed `_check_mtime` to check the return value of `gettimeofday` rather than
+ just assuming it worked.
+
+
+1.6.5 2015-02-25
+
+* A segmentation fault in `geoiplookup` was fixed when the utility was passed
+ an invalid database. (Reported in Red Hat bug #1180874.)
+* Additional validation was added for validation of the size used in the
+ creation of the index cache. (Based on discussion in Red Hat bug #832913.)
+* Changed the code to only look up country codes by using functions which
+ ensure that we do not try to look past the end of an array. (Reported by
+ Ivan Sorokin. GitHub #53)
+
+
+1.6.4 2015-01-12
+
+* Update Fips codes (Boris Zentner)
+* Several issues with the MinGW build were fixed. (Thomas Pöchtrager. Github
+ #46.)
+* Use a constructor in pread.c to ensure the critical section is always
+ initialized. (Thomas Pöchtrager. Github #47.)
+* Added missing include of `io.h` on Windows. (Thomas Pöchtrager. Github #49.)
+* Fixed `configure` warning that `'missing' script is too old or missing`.
+ (Reported by Floren Munteanu. Github #33.)
+* Previously `nmake /f Makefile.vc clean` would fail on Windows. This was
+ fixed.
+* Obsolete win32 and NetWare make files were removed.
+* Numerous documentation updates. (Reported by Thomas Pöchtrager. GitHub #48.)
+
+
+1.6.3 2014-10-29
+
+* Added a GEOIP_SILENCE flag. Include this flag when calling GeoIP_open to
+ prevent any messages from being written to stderr. (Philip Prindeville
+ and Boris Zentner)
+* Mitigate a possible race condition when running under threads in the
+ GeoIP_cleanup function. (Anthon Pang)
+* Added some recommendations to the docs on using this library in a
+ threaded application. (Boriz Zentner)
+* Fixed some bugs discovered by coverity, including failure to check some
+ system call return values and making sure all strings are
+ null-terminated. (Boris Zentner)
+
+
+1.6.2 2014-07-08
+
+* Two files required for building on Win32 were missing from the 1.6.1
+ release. These files were added. There are no changes affecting other
+ platforms. (Boris Zentner)
+
+
+1.6.1 2014-06-26
+
+* Improve Win32 support (Evan Hunt)
+* Update FIPS codes (Boris Zentner)
+
+
+1.6.0 2013-10-29
+
+* Remove geoipupdate (Boris Zentner)
+
+
+1.5.2 2013-10-29
+
+* Update region and time zones (Boris Zentner)
+* Fix benchmark script (Boris Zentner)
+* Remove autogenerated files ltmain.sh, man/geoip*.1 (Boris Zentner)
+* Explain how to download free geolite databases in the README.md and
+ GeoIP.conf.default (Boris Zentner)
+* geoipupdate returns 1 on error 0 on success instead of the error code
+ (Boris Zentner)
+* README is replaced by README.md (Gregory Oschwald)
+* Add support for OS X Mavericks (Boris Zentner)
+
+
+1.5.1 2013-05-14
+
+* Update time_zone for Ontario, Canada (Boris Zentner)
+* geoiplookup and geoiplookup6 exit code is 0 when user asked for help
+ (Jan Safranek)
+* Added -h option to geoiplookup6 (Jan Safranek)
+* Do not load the database file if nodes and file size do not make
+ sense. (Boris Zentner)
+* Keep README and man pages in pure ascii. (Boris Zentner)
+* It doesn't make sense to use GEOIP_INDEX_MODE with small databases
+ like GEOIP_COUNTRY_EDITION. Instead of undefined behaviour we handle
+ it silently as GEOIP_MEMORY_MODE (Boris Zentner)
+* Update FIPS codes for Greece (Boris Zentner)
+
+
+1.5.0 2013-02-21
+
+* Rename custom_directory to GeoIP_custom_directory. (Boris Zentner)
+* Make sure the database match the requested type. This is helpful for
+ Databases with the same default name and the general geoiplookup form
+ (geoiplookup without a specific database) (Boris Zentner)
+* apps/geoiplookup6.c use the ipnum instead of the hostname for lookups.
+ (Boris Zentner)
+* Use configure.ac instead of configure.in (Boris Zentner)
+* Region lookup is a bit faster (Boris Zentner)
+* Add pkg-config file (Bastien Nocera)
+* Updates required to build a Windows DLL under MinGW (Gerald Combs)
+* Make API thread safe (Boris Zentner)
+* geoiplookup's default charset is UTF8
+ -l change the charset back to iso8859-1 (Boris Zentner)
+* geoipupdate skips \r otherwise it might be part of the last
+ product_id (Boris Zentner)
+* Update time zones (Boris Zentner)
+* Update Region codes (Boris Zentner)
+* Remove the unused CITYCONFIDENCE* database types (Boris Zentner)
+* bootstrap rebuilds ltmain.sh (Boris Zentner)
+* Update README.OSX for Lion (Boris Zentner)
+* Change Macedonia to Macedonia, The Former Yugoslav Republic of
+ (Boris Zentner)
+* Add region_name to geoiplookup GEOIP_CITY_EDITION_REV1 (Boris Zentner)
+* Add region_name to geoiplookup GEOIP_CITY_EDITION_REV0 (Chris Johnson)
+* Add a --disable-data-files option. This allows you to build and install
+ the library without having a data/GeoIP.dat file. This is useful when
+ building the library from a checkout of the source tree, rather than a
+ tarball (Dave Rolsky)
+* Add GEOIP_ACCURACYRADIUS_EDITION and GEOIP_ACCURACYRADIUS_EDITION_V6
+ (Boris Zentner)
+* Add more database types GEOIP_COUNTRYCONF_EDITION,
+ GEOIP_CITYCONF_EDITION, GEOIP_REGIONCONF_EDITION and
+ GEOIP_POSTALCONF_EDITION (Boris Zentner)
+* Fix default filenames for GEOIP_NETSPEED_EDITION_REV1 and
+ GEOIP_NETSPEED_EDITION_REV1_V6 (Boris Zentner)
+
+
+1.4.8
+
+* Fix GEOIP_DOMAIN_EDITION_V6 (Boris Zentner)
+* Add new Datatypes GEOIP_NETSPEED_EDITION_REV1_V6 and
+ GEOIP_NETSPEED_EDITION_REV1 (Boris Zentner)
+* Fix possible directory traversal weakness in geoipupdate-pureperl.pl with
+ malicious update server (Boris Zentner)
+* Fix GEOIP_ORG_EDITION_V6 and GEOIP_ISP_EDITION_V6 (Boris Zentner)
+
+
+1.4.7 2011-12-19
+
+* Upd timezone.c Add SX, BQ and CW remove AN and FX (Boris Zentner)
+* Add support for the new types in geoiplookup6 (Boris Zentner)
+* Add new database types GEOIP_CITY_EDITION_REV0_V6,
+ GEOIP_CITY_EDITION_REV1_V6, GEOIP_DOMAIN_EDITION_V6,
+ GEOIP_ORG_EDITION_V6 and GEOIP_ISP_EDITION_V6 (Boris Zentner)
+* Remove AN and FX. Add SX, BQ and CW (Boris Zentner)
+* Fix possible segfault in geoipupdate if the connection disappear
+ unexpected. (Boris Zentner)
+* Add sanity check for geoipupdate-pureperl.pl (Boris Zentner)
+* Add GEOIP_USERTYPE_EDITION and GEOIP_USERTYPE_EDITION_V6
+ datatypes (Boris Zentner)
+* Add new functions GeoIP_is_private_ipnum_v4 and GeoIP_is_private_v4
+ (Boris Zentner)
+* Add new functions GeoIP_teredo and GeoIP_enable_teredo.
+ teredo is enabled by default (Boris Zentner)
+* Fix output of geoiplookup for unknown or private regions.
+ (Boris Zentner)
+* Fix geoipupdate-pureperl.pl to accept more product codes.
+ (Boris Zentner)
+* Fix minor output issue in geoipupdate -v (Boris Zentner)
+* Add support for various databases. (Boris Zentner)
+* Add experimental teredo support (Boris Zentner)
+* Fix possible buffer overflow in conjunction with
+ http_proxies (Elso Andras)
+* Remove memcpy/bcopy macro for BSD (Boris Zentner)
+* Add GeoIP_lib_version and GeoIP_cleanup (Ladar Levison)
+* Upd Makefile.vc (Thomas Winzig)
+* Fix typo in DK,18,Midtjylland (Boris Zentner)
+* Update libGeoIP/regionName.c with FIPS codes 20100810 (Boris Zentner)
+* Fix continent codes (Boris Zentner)
+* Fix 3letter country codes for ATA, BVT, IOT, CXR, CCK, ATF, HMD,
+ MYT, SGS and UMI (Boris Zentner)
+* Fix typo/segfault in GeoIP_id_by_name_v6 (Boris Zentner)
+* Update libGeoIP/regionName.c with FIPS codes 20100529 (Boris Zentner)
+* Remove buffered IO functions, to fix issues with dup'ed file
+ descriptors (Boris Zentner)
+* Fix very minor memleak in geoipupdate (Boris Zentner)
+* Add GEOIP_CITYCONFIDENCEDIST_EDITION, GEOIP_LARGE_COUNTRY_EDITION
+ and GEOIP_LARGE_COUNTRY_EDITION_V6 database types (Boris Zentner)
+* Update libGeoIP/regionName.c with FIPS codes 20100422 (Boris Zentner)
+* Update libGeoIP/regionName.c with FIPS codes 20100420 (Boris Zentner)
+* Update libGeoIP/regionName.c with FIPS codes 20100221 (Boris Zentner)
+* Add missing timezones (Boris Zentner)
+* Add missing include for Windows 2000 (Jaap Keute)
+* 'GeoIP Database up to date' and 'Updated database' prints to stdout
+ instead of stderr (Boris Zentner)
+* Add missing GeoIPRecord_delete to geoiplookup.c (Piotr Kaczuba)
+* Add some IPv4 helper functions
+ unsigned long GeoIP_addr_to_num(const char *addr);
+ char * GeoIP_num_to_addr(unsigned long ipnum); (Boris Zentner)
+* Fix default name for the accuracy radius database to GeoIPDistance.dat (Boris Zentner)
+* Add GEOIP_CITYCONFIDENCE_EDITION database type. (Boris Zentner)
+* geoiplookup use GeoIPDistance.dat files if avail (Boris Zentner)
+* Fix geoiplookup/geoiplookup6 output, when the databaseinfo string is
+ not avail. (Boris Zentner)
+* Change continent code for RU from AS to EU (Boris Zentner)
+* Add GEOIP_ACCURACYRADIUS_EDITION database type. (Boris Zentner)
+* Add GEOIP_LOCATIONA_EDITION the database to map back from binary to
+ the csv database (Boris Zentner)
+* Change Turkey's continent code from Asia to Europe (Boris Zentner)
+* Rename _iso_8859_1__utf8 to _GeoIP_iso_8859_1__utf8 (Boris Zentner)
+* GEOIP_ORG_EDITION, GEOIP_ISP_EDITION, GEOIP_DOMAIN_EDITION and
+ GEOIP_ASNUM_EDITION databases return UTF8 results, if gi->charset is set
+ to GEOIP_CHARSET_UTF8 (Boris Zentner)
+* Avoid unnecesary call to gettimeofday when GEOIP_CHECK_CACHE is not set (John Douglass)
+* Delayed loading of changed database files for 60 seconds. To avoid
+ reading halve written databases (Boris Zentner)
+* Update README.OSX for Leopard and Snow Leopard (Boris Zentner)
+* Add more IPv6 functions (Boris Zentner)
+ const char *GeoIP_country_code_by_addr_v6 (GeoIP* gi, const char *addr);
+ const char *GeoIP_country_code_by_name_v6 (GeoIP* gi, const char *host);
+ const char *GeoIP_country_code3_by_addr_v6 (GeoIP* gi, const char *addr);
+ const char *GeoIP_country_code3_by_name_v6 (GeoIP* gi, const char *host);
+ const char *GeoIP_country_name_by_addr_v6 (GeoIP* gi, const char *addr);
+ const char *GeoIP_country_name_by_name_v6 (GeoIP* gi, const char *host);
+* Make sure that GeoIP_*_v6 functions refuse GEOIP_PROXY_EDITION and
+ GEOIP_NETSPEED_EDITION databases (Boris Zentner)
+* Update libGeoIP/regionName.c with FIPS codes from 20090723 (Boris Zentner)
+* Fix geoipupdate's -v option to not change the license filename (Thom May)
+* Fix geoipupdate's exit code (Thom May)
+* Add support for ASNUM_EDITION (Boris Zentner)
+* Fix -i output for larger values, sign issue (Boris Zentner)
+* Add -i flag for more information on netmask, range_by_ip and the current network range (Boris Zentner)
+* Add support for DOMAIN_EDITION database type (Boris Zentner)
+* Fix apps/geoipupdate-pureperl.pl output layer on W32 (Boris Zentner)
+
+
+1.4.6 2009-02-25
+
+* Fix geoipupdate's my_printf function (Boris Zentner)
+* Fix typo in apps/geoipupdate-pureperl.pl replace PerlIO::Gzip with PerlIO::gzip (Boris Zentner)
+* Update region codes in libGeoIP/regionName.c (Boris Zentner)
+* Fix regioncode/generate_regionName.pl to handle regioncodes with ',' correct (Boris Zentner)
+* Update fips codes 20090201 (Boris Zentner)
+* Fix unicode builds on WIN32 and eliminate some warnings (Stu Redman)
+* Fix sign error in _iso_8859_1__utf8 for PPC64 (Boris Zentner)
+* Change WIN32 to _WIN32, since _WIN32 is defined by default. _WIN32 is also defined for WIN64 machines (Boris Zentner)
+! Remove the WSAStartup call from GeoIP_open. All Applications need to call WSAStartup and WSACleanup to initialize the Windows Socket library. Before they use any of the GeoIP_*_by_name functions. (Boris Zentner)
+* geoiplookup and test-geoip-* output N/A instead of (null) (Boris Zentner)
+* Silence various warnings. (Boris Zentner)
+* Add more timezone region's for Australia
+* Fix possible segfault in apps/geoiplookup with null pointers in non gnu printf implementations for example solaris (Boris Zentner)
+* Add README.OSX to build fat binaries easy (Boris Zentner)
+* Silence vasprintf warning via AC_GNU_SOURCE (Boris Zentner)
+* Add several Makefiles to build a static GeoIP.lib for w32 (Stanislaw Pusep and Randy Kobes)
+* Silence signedness warnings (Peter Volkov)
+* Remove --with-city configure option. (Boris Zentner)
+* Remove configure's --with-dbdir option. Use the similar --datadir instead (Peter Volkov)
+* Various autotools improvements and cleanups. Including parallel
+ build fix (Peter Volkov)
+* Fix libGeoIP/timeZone.c (Martin Haller)
+* Fix timezone/generate_timeZone.pl (Boris Zenter)
+* Sync FIPS codes again Jan 14th, 2009 (Boris Zentner)
+* Fix CA,NL regioncode. (Boris Zentner)
+* Change logic in generate_regionName.pl and GeoIP_region_name_by_code to handle any mixture of two letter fips codes matching [A-Z0-9]{2} the change allow GZ and WE region codes (Boris Zentner)
+* Sync regionName.c with http://www.maxmind.com/app/fips10_4 from Dec 17th, 2008 (Boris Zentner)
+* Fix _GeoIP_lookupaddress for 64bit big endian systems like ppc64 (Peter Volkov)
+* Add proper WIN32/64 support (Gerald Combs)
+* Escape - in all manpages (Patrick Matthäi)
+* Add manpage for geoiplookup6 (Boris Zentner)
+* Fix -d command line option (Klaus Heinz)
+* GeoIPUpdate.c use vasprintf if avail, otherwise try vsnprintf and sprintf (Boris Zentner)
+* avoid pre/postincrement and assignment on the same variable (Boris Zentner)
+
+
+1.4.5 2008-09-16
+
+* metro_code replace the depreciated dma_code field (Boris Zentner)
+* Add new function GeoIP_range_by_ip_delete
+ r = GeoIP_range_by_ip(gi, '24.24.24.24');
+ ...
+ GeoIP_range_by_ip_delete(r); (Boris Zentner)
+* Fix small memoryleak and wrap around in GeoIP_range_by_ip (Boris Zentner)
+* CHECK_CACHE stat the database file not faster than once a second anymore (Patrick McManus)
+* Fixed a typo in the geoipupdate(1) manpage and also an non-existent path on Debian (Patrick Matthäi)
+* Fixes two little format errors (hyphen used as minus sign) in both manpages (Patrick Matthäi)
+* Sync regionName.c with a recent fips code list (Boris Zentner)
+* Fix segfault when open failed for a custom file (-f) (Boris Zentner)
+* Fix sync geoiplookup's man page with the code (Klaus Heinz)
+* remove unused code from GeoIP_country_name_by_addr and GeoIP_country_code3_by_addr (Boris Zentner)
+* Fix geoiplookup and geoiplookup6 to distinguish between failed namelookups and unknown ips (Boris Zentner)
+* add geoiplookup6 that can handle the new database type GEOIP_COUNTRY_EDITION_V6 (Boris Zentner)
+* add new functions to handle ipv6:
+ GEOIP_API const char *GeoIP_country_name_by_ipnum_v6 (GeoIP* gi, geoipv6_t ipnum);
+ GEOIP_API const char *GeoIP_country_code_by_ipnum_v6 (GeoIP* gi, geoipv6_t ipnum);
+ GEOIP_API const char *GeoIP_country_code3_by_ipnum_v6 (GeoIP* gi, geoipv6_t ipnum);
+ GEOIP_API char *GeoIP_org_by_ipnum_v6 (GeoIP* gi, geoipv6_t ipnum);
+ GEOIP_API char *GeoIP_org_by_addr_v6 (GeoIP* gi, const char *addr);
+ GEOIP_API char *GeoIP_org_by_name_v6 (GeoIP* gi, const char *name);
+ GEOIP_API int GeoIP_id_by_addr_v6 (GeoIP* gi, const char *addr);
+ GEOIP_API int GeoIP_id_by_name_v6 (GeoIP* gi, const char *host);
+ GEOIP_API int GeoIP_id_by_ipnum_v6 (GeoIP* gi, geoipv6_t ipnum);
+ GEOIP_API GeoIPRegion * GeoIP_region_by_addr_v6 (GeoIP* gi, const char *addr);
+ GEOIP_API GeoIPRegion * GeoIP_region_by_name_v6 (GeoIP* gi, const char *host);
+ GEOIP_API GeoIPRegion * GeoIP_region_by_ipnum_v6 (GeoIP *gi, geoipv6_t ipnum);
+ GEOIP_API void GeoIP_assign_region_by_inetaddr_v6(GeoIP* gi, geoipv6_t inetaddr, GeoIPRegion *gir);
+ GEOIP_API char *GeoIP_name_by_ipnum_v6 (GeoIP* gi, geoipv6_t ipnum);
+ GEOIP_API char *GeoIP_name_by_addr_v6 (GeoIP* gi, const char *addr);
+ GEOIP_API char *GeoIP_name_by_name_v6 (GeoIP* gi, const char *name);
+
+ # allowed input for addr
+ 2001:4860:0:1001::68
+ ::85.8.93.71
+ ::1
+ ::5508::5d47
+ ::ffff:5508::5d47
+
+ # allowed input for host
+ ipv6.google.com
+ 2001:4860:0:1001::68
+ ::85.8.93.71
+ ::1
+ ::5508::5d47
+ ::ffff:5508::5d47
+ (Boris Zentner)
+* Fix geoiplookup usage string (add -d -f) (Boris Zentner)
+* Added GeoIP_range_by_ip, returns the start and end IP address for the range containing the IP address.
+ This range has a constant value in the GeoIP database.
+* Add geoipupdate-pureperl.pl a alternative geoipupdate version. with Proxy Server support via via the "http_proxy" environment variable. Easy to customize. (Boris Zentner)
+* Add WIN64 since WIN32 is not defined on WIN64 Systems (Boris Zentner)
+* Fix WIN32 compilation by encircle all MMAP functions with #ifdef WIN32 #endif pairs. MMAP is not avail in W32 (Boris Zentner)
+* Update timezone/generate_timeZone.pl (Boris Zentner)
+* Update libGeoIP/timeZone.c (Boris Zentner)
+* Added GeoIP_printf and GeoIP_fprintf as a experimental feature to
+ libGeoIPUpdate. (Boris Zentner, Andrew Droffner)
+* Added cast in _iso_8859_1__utf8 function to fix NetWare/Win32 compilation issue (Guenter Knauf)
+* Add HTTP Proxy Server support for geoipupdate via the "http_proxy"
+ environment variable.
+ ie: export http_proxy="http://proxy-hostname:port"
+ (Andrew Droffner, Derek Nicol)
+* Notice, that __YOU__ need to free the results of
+
+ GeoIP_database_info
+ GeoIP_name_by_ipnum
+ GeoIP_name_by_addr
+ GeoIP_name_by_name
+ GeoIP_org_by_ipnum
+ GeoIP_org_by_addr
+ GeoIP_org_by_name
+
+ not libgeoip
+ (Boris Zentner, Andrew Cheung)
+* Fixed segfault with geoiplookup, if used with a custom_file database, that
+ could not be opened. (Boris Zentner)
+* Add Usage info for options -f and -d in geoipupdate (Boris Zentner)
+* Fixed segfault with geoipupdate when called with a illformed license file
+ (Boris Zentner)
+* Update add more timezones to GeoIP_time_zone_by_country_and_region
+ (Boris Zentner)
+* Add array access functions so programs can avoid accessing the
+ arrays directly which whould break binary compatability (Ludwig Nussel at SUSE)
+* Updated README to state API is only thread-safe if GEOIP_CHECK_CACHE is not used
+
+
+1.4.4 2008-1-21
+
+* Updated original geoipupdate to return "Invalid product ID or subscription expired"
+* Added BL/Saint Barthelemy, MF/Saint Martin (ISO-3166-1 additions)
+* Check for illegal IP strings, return 0 if IP is not well formed IPv4 e.g. 1.2.3.4.5 and 1.2.3
+* Clarified that while core GeoIP library is LGPL, libGeoIPUpdate depends on md5.c and types.h which are GPL.
+* speedup the conversion from ipstring to ipnum in _GeoIP_addr_to_num. Doubles the speed of GEOIP_MEMORY_CACHE and GEOIP_MMAP_CACHE
+* Added new mmap shared memory caching option, GEOIP_MMAP_CACHE (Peter Shipley, LookSmart)
+ - mmaps: our maps are shared, but we need only private readonly pages
+
+
+1.4.3 2007-8-30
+
+! CHANGE with geoiplookup facility: -v flag now returns database info for all databases, not just GeoIP Country
+* Added ability to get netmask of network block from last lookup using GeoIP_last_netmask
+* Fixed GeoIP_database_info bug with GeoLite City
+* Replaced 4 with sizeof(char*) to fix issues with geoipupdate on 64 Bit machines
+* Added GeoIP_set_charset function - enables UTF8 output of city name if GEOIP_CHARSET_UTF8 flag is passed
+to GeoIP_set_charset
+* Fixed segfault issue if calling GeoIP_db_avail before opening a database
+* Added continent_code to GeoIP City's record struct (Frank Mather)
+
+
+1.4.2 2007-2-8
+
+* Added -d flag to enable custom path for geoipupdate utility program (Frank Mather)
+* Replaced _WIN32 with WIN32 since WIN32 is already set by compilers
+* Moved var definitions to top of code, defined size_t (Guenter Knauf)
+* Added Makefile.win32, Makefile.netware, get_ver.awk, geoip.ico to EXTRA_DIST in Makefile.am (Guenter Knauf)
+
+
+1.4.1 2007-1-2
+
+* Replaced CS/Serbia and Montenegro with RS/Serbia, removed ZR/Zaire, added ME/Montenegro
+* Added AX/Aland Islands, GG/Guernsey, IM/Isle of Man, JE/Jersey (ISO-3166-1 changes)
+* Added GeoIP_time_zone_by_country_and_region, to lookup zoneinfo timezone by country and region (Frank Mather)
+* Added GeoIP_region_name_by_code, to lookup region name from region code (Frank Mather)
+* added -f and -d flags to enable custom paths for geoiplookup utility program (Frank Mather)
+* Added benchmarks for GeoIP Region and City in test/benchmark.c (Frank Mather)
+* Fixed build issue when using --as-needed flag (Diego 'Flameeyes' Pettenò)
+* Add sanity checking for filename returned by MaxMind.com server for geoipupdate filename
+ (Dean Gaudet, arctic.org)
+* Fixed memory leaks under error conditions, buffer overflow using sprintf,
+ and issue where a corrupted cache file could core dump the file
+ (Nick Galbreath, Right Media Inc)
+
+
+1.4.0 2006-8-7
+
+* Changed license from GPL to LGPL, so that PHP Extension can be included in PECL (Olivier Hill)
+* Rewrote GEOIP_CHECK_CACHE code, fixed numerous bugs
+ - CheckCache now works if GeoIP file is overwriten by mv command
+ - Fixed bug where CheckCache kept reloading in GEOIP_STANDARD_MODE
+ - Fixed segfault issue in GEOIP_MEMORY_CACHE mode
+ - Fixed garbage data appearing in GEOIP_INDEX_CACHE mode
+ - Fixed realloc in case realloc returns new memory block (Andre Morozov of Stone Steps)
+* Updated geoipupdate to print status messages for each database instead of just last database
+* Check that gi is not null before running code in GeoIP_delete
+* Fixed alpha-3 codes ordering, replaced TLS,TKM,TUN,TON with TKM,TUN,TON,TLS
+* TP/East Timor changed to TL/Timor-Leste, reflecting changes in ISO-3166
+
+* Added Netware and Windows makefiles (Guenter Knauf)
+* Fixed NetWare compiler issue with char block[block_size] declaration (Guenter Knauf)
+* Updated geoipupdate example to run weekly
+
+
+1.3.17 2006-5-14
+
+* Fixed headers for Windows/Netware compilation (Guenter Knauf)
+* Fixed Received Error -21 (Sanity check database_info string failed)
+ when running geoipupdate with GeoIP Country when UserId and
+ productIds were not specified. Bug was introduced in 1.3.15.
+
+
+1.3.16 2006-4-17
+
+* Fixed compliation error in GeoIPUpdate.c
+
+
+1.3.15 2006-4-14
+
+* Updated README documentation
+* Updated geoipupdate so that it writes file as it is uncompressed instead
+of storing entire GeoIP.dat file in memory (Frank Mather)
+* Updated geoiplookup so that it returns GeoIP Domain Name if available
+ (Frank Mather)
+* Updated geoipupdate so that it reports whether databases are updated
+in non-verbose mode (Frank Mather)
+
+
+1.3.14 2005-9-7
+
+* Check if byte, ushort, ulong, u16, u32 are defined in configure
+ script. Fixes compilation issue on FreeBSD systems.
+* Check for Big Endian byte order (needed for MD5 code in geoipupdate
+ to work properly on Mac OS X and other Big Endian processors)
+* Fixed GEOIP_CHECK_CACHE mode when used with GEOIP_STANDARD to
+ only refresh upon file change
+* Fixed memory leak when refreshing file in GEOIP_CHECK_CACHE mode
+* Updated ltmain.sh to support Debian GNU/k*BSD bug #315425 (Marek Habersack)
+* Added lookup functions using IP numeric representation as input (Frank Mather)
+* Removed geoipexport
+* Replaced Yugoslavia with Serbia and Montenegro
+* Updated geoiplookup to only perform country lookup once instead of twice by
+ using GeoIP_id_by_name
+
+
+1.3.13 2005-8-1
+
+* Fixed autoconf weirdness that resulted in libraries being
+ installed without .so suffix
+
+
+1.3.12 2005-7-19
+
+* Removed -lGeoIP from libGeoIPUpdate_la_LIBADD - fixes compilation error
+ if GeoIP isn't already installed (Thomas Steudten)
+
+
+1.3.11 2005-7-7
+
+* Fixed gcc warnings and bug. Use int
+ instead of char for checking the return value of getopt in geoipupdate.c.
+ Moved the internal functions to GeoIP_internal.h to get rid
+ of those 'implicit declaration' warnings. (Ludwig Nussel/SUSE)
+* Cleaned up name space by prefixing internal functions with
+ _GeoIP* (Ludwig Nussel/SUSE)
+* Memory Leak fix for GeoIP City if fread error
+* Added more verbose error messages for geoipupdate (Frank Mather)
+* Added check for zlib.h to configure.in
+
+
+1.3.10 2005-4-17
+
+* Added types.h to Makefile.am - fixes compilation error
+
+
+1.3.9 2005-4-14
+
+* fixed bug with GEOIP_INDEX_CACHE (Frank Mather)
+* fixed segfault issue if GeoIP.dat not found (Frank Mather)
+* Updated MD5 checksum code to use GnuPG code which works
+ on 64bit machines (Frank Mather)
+* Fixed memory leak in test-geoip-isp.c and test-geoip-org.c
+* Added support for GeoIP Domain Names in geoipupdate
+
+
+1.3.8 2004-11-7
+
+* Updated geoipupdate to report invalid userID and productID errors
+* Check if gethostbyname_r is version that returns int or is other version
+ - should fix compile errors on Solaris and FreeBSD
+* Updated URL to get license key, userId, and product Ids in conf/GeoIP.conf.default
+* Updated test case, removed www.asahi.com
+* Added support for GEOIP_INDEX_CACHE - which just caches
+ the most frequently access index portion of the database, resulting
+ in faster lookups than GEOIP_STANDARD, but less memory usage than
+ GEOIP_MEMORY_CACHE (Frank Mather)
+
+
+1.3.7 2004-10-5
+
+* Updated test case, removed www.bundesregierung.de added www.asahi.com
+
+
+1.3.6 2004-8-8
+
+* Check for gethostbyname_r support in configure (Mac OS X doesn't support gethostbyname_r)
+* Made GeoIP City code thread safe
+* Fixed bug with geoipupdate reading in product ids
+* Added support for GeoIP Netspeed geoipupdate
+* Fix memleak in lookupaddress (Ludwig Nussel/SUSE)
+* Add prototype for _full_path_to to make 64bit clean
+ (Ludwig Nussel/SUSE)
+* Add return values to test programs (Ludwig Nussel/SUSE)
+
+
+1.3.5 2004-7-5
+
+* Added more documentation to README file
+* Made GEOIP_CHECK_CACHE work with GEOIP_STANDARD mode - reloads filehandle
+ in case file changes.
+* Added GeoIP_country_code_by_ipnum and GeoIP_id_by_ipnum to use
+ existing ulong IP Address in numeric form instead of having to
+ convert it to string (Boris Hajduk)
+* Made code thread safe by replacing gethostbyname with gethostbyname_r
+
+
+1.3.4 2004-6-4
+
+* Fixed bug where *.gz file(s) didn't get removed after geoipupdate
+
+
+1.3.3 2004-6-2
+
+* Added support for NetSpeed lookup to geoiplookup
+* inet_addr patch for 64 bit systems (Thomas Steudten)
+* Added Support for automated downloads of GeoIP Region, City, ISP and
+ Organization databases (Frank Mather)
+* INADDR_NONE Patch for Solaris 9 (John Young)
+
+
+1.3.2 2004-4-20
+
+* Added support for Maxmind NetSpeed
+
+* MinGW patch from Stanislaw Pusep
+
+ I was re-compiling Geolizer (http://sysd.org/log.php#glzr) on Win32 so I
+ firstly needed to put up-to-date Win32 compatibility of libGeoIP itself.
+ Fortunately MinGW plataform evolved a lot since last time I used it to
+ compile libGeoIP. I'm sending you the patch with changes required for
+ libGeoIP to work on both Win32 and UN*X. UN*X behavior is unaffected. Now,
+ detailed explanation of what I did at all:
+
+ 1) Made correct header imports for both Win32 and UN*X. UN*X imports netdb.h
+ & netinet/in.h and Win32 imports windows.h & winsock.h
+ 2) Win32 gethostbyname() is only able to resolve hostnames, it can't convert
+ "127.0.0.1" string to 32-bit IP address. Thus I added lookupaddress()
+ function that safely resolves any string to IP address and replaced all
+ gethostbyname() calls by it.
+ 3) Database files were referenced by pre-compiled static strings. I
+ malloc()ed buffers for file names so they can be changed "on fly". Thus,
+ on Win32 version GeoIP.dat & other files are being seeked in the same
+ directory as executable file or library.
+ 4) Added README.MinGW file with brief explanation on how to get GeoIP
+ working under MinGW system.
+
+
+1.3.1 2003-11-11
+
+* Check for stdint.h in autoconf (Sean Chittenden)
+* prevent the geoipupdate man page from trying to install itself directly in
+ the system directory (Gyepi Sam)
+
+
+1.3.0 2003-09-29
+
+* Fixed includes to compile on Windows (Fabrice Colin)
+* Removed the _addr_to_num() calls from GeoIP_*_by_name()
+* _seek_record() optimizations (Maurice Cinquini)
+ 1) Use a single buf ptr inside the loops.
+ Set to the stack buffer or the cached memory the start of the function.
+ 2) Unroll the i=0,1 loop to allow constant folding.
+ 3) Unroll the j loop for the common case of j = STANDARD_RECORD_LENGTH
+ (I've already done the above changes see attached function.)
+ With gcc -O2 calculating x[0] and x[1] for STANDARD_RECORD_LENGTH now
+ only takes 15 (was > 100) i80x86 instructions with 6 byte accesses of RAM.
+ 4) only calculate x[0], x[1] when needed, may be a bigger win
+ than the above since all the other optimizations above only reduced
+ CPU instructions operating on CPU cached RAM.
+! IMPORTANT API Change: Changed GeoIPRegion to have region in structure. Saves space and a malloc.
+ Since GeoIPRegion.region is no longer a pointer but an in-structure
+ array so test the first byte of region == 0 rather testing if the region
+ pointer is NULL. (Maurice Cinquini)
+* Added GeoIP_assign_region_by_inetaddr which doesn't do any mallocs and made all other region APIs go thru it (Maurice Cinquini)
+* Replaced _h_addr_to_num() with ntohl() and removed _h_addr_to_num() (Maurice Cinquini)
+* Fixed bug when IP address not found in region rev1 database (Jason Linhart)
+* Added added extern "C" to GeoIPCity.h fixes problems when included in C++ library
+
+
+1.2.2 2003-08-10
+
+* Added support for GeoIP ISP Edition identifier
+* Fixed bug in GeoIP_database_info (Jason Linhart)
+* Added support for GeoIP AS Number Edition
+! renamed GeoIP_org_by_* functions to GeoIP_name_by_* to reduce confusion
+ since these functions are used by GeoIP ISP and GeoIP ASNum as well
+ as GeoIP Organization
+* Added support for GeoIP Proxy Edition
+! renamed GeoIP_country_id_by_* functions to GeoIP_id_by_*
+
+
+1.2.1 2003-07-12
+
+* Added GeoIP_record_id_by_addr and GeoIP_next_record functions
+* Added support for new GeoIP Region format, including Canadian Provinces
+
+
+1.2.0 2003-04-26
+
+* Added support for GeoIP City format revision 1, including dma code and area code
+* geoiplookup returns results from GeoIP Region, City, ISP and Organization databases
+* Standardized location for GeoIP Region, City, ISP and Organization databases
+* Added GeoIP_open_type to open database from default location for other dbs besides country
+* Added check to make sure that the appropriate database is loaded for each lookup method
+* Updated update code to check for first 12 characters of license key
+* Added GeoIP_country_continent array to lookup continent by country ID
+
+
+1.1.9 2003-03-10
+
+* merged windows patch into main code base (Kenneth R. Robinette)
+* Changed const int to #define for windows compatibility
+
+
+1.1.8 2003-03-04
+
+* Fixed bug with city database introduced in 1.1.6
+
+
+1.1.7 2003-03-04
+
+* Fixed bug introduced in 1.1.6 when run in GEOIP_STANDARD mode
+* Added test to test GEOIP_STANDARD
+
+
+1.1.6 2003-03-03
+
+* Added spec for building RPMs (Ryan Weaver)
+* Added support for 4byte records for Organization database
+* Changed Taiwan, Province of China to Taiwan
+
+
+1.1.5 2003-02-10
+
+* Added support for GeoIP Organization database
+
+
+1.1.4 2002-12-30
+
+* Cast number to int in _num_to_addr in geoipexport (Ralf S. Engelschall)
+* Removed printf debug statements from geoipexport
+* correct library build ordering (Ralf S. Engelschall)
+* ulong -> unsigned long (Sean Chittenden)
+
+
+1.1.3 2002-12-24
+
+* Added GeoIPUpdate.h to EXTRA_DISTS
+* Compile fixes for Solaris, FreeBSD (Michael McClennen, Corris Randall)
+* Handle NULL in printf in test-geoip-region
+
+
+1.1.2 2002-12-16
+
+* Added support for postal codes
+* Added geoipexport, program to export bit binary file to
+ binary tree format and csv format
+* Split update code into separate library, GeoIPUpdate.la
+* Allow passing NULL callback to GeoIP_update_database function
+ (Sean Chittenden)
+* Added geoipexport program, exports to CSV file
+* Added GeoIP_database_edition method
+* Changed DATADIR to GEOIPDATADIR
+
+
+1.1.1 2002-11-07
+
+* Fixed segfault issue with GeoIPRegion_delete
+* Handle test failures where lookup returns NULL more gracefully
+
+
+1.1.0 2002-11-06
+
+* Perform sanity checking before installing datebase using geoipupdate
+* Removed file locking, since we install file by renaming instead of writing to it.
+* Fixed geoipupdate to check for NULL return value
+* Added constants for different editions
+* Added O1 code for "Other country", used in per-country city editions
+* fixed multi-line string literals warning in test-geoip.c
+* Use enum constants for GeoIP_update_database values
+* Added GEOIP_CHECK_CACHE option (not working yet)
+
+
+1.0.10 2002-10-28
+
+* IMPORTANT API Change - Return NULL instead of '--' and 'N/A'
+ Be sure to check the return value for NULL to avoid segmentation faults!!!!
+* Added callback to print messages from GeoIP_update_database
+* Moved GeoIPConfFile to geoipupdate.c
+* Changed databaseSegments to unsigned int (Chris Gibbs)
+* Fixed compiler warnings (Chris Gibbs)
+* API Change - GeoIPRegion region member set to NULL when no region available
+* Change short int to int (Chris Gibbs)
+* Added write/read file locking for GeoIPUpdate.c/GeoIP.c
+
+
+1.0.9 2002-10-16
+
+* removed -ansi from Makefile.am to avoid compile error on Solaris 8
+* Compile fix for FreeBSD Stable (Kimura Fuyuki)
+
+
+1.0.8 2002-10-05
+
+* Included header required for *BSD (Akinori Musha)
+
+
+1.0.7 2002-10-05
+
+* Fixed compilation error with GeoIPUpdate.c
+
+
+1.0.6 2002-10-04
+
+* Moved update code into separate file
+* Added md5 checksums to update code
+* Fixed memory leak when running geoiplookup -v
+* Moved const RECORD_LENGTH to #define RECORD_LENGTH for Windows compatibility
+ (Randy Kobes)
+* Cleaned up GeoIP_new code
+
+
+1.0.5 2002-09-23
+
+* Supports GeoIP Regional Edition
+* Macau is now "Macao" per ISO 3166-1 change
+* Romania "ROM" is now "ROU" per ISO 3166-1 change
+* Added #define for memcpy -> BSD's bcopy (Chris Gibbs)
+* Removed "private" functions from GeoIP.h
+
+
+1.0.4 2002-08-27
+
+* rewrote _seek_country to use loop instead of recursion for faster performance
+* Removed "orphan" nodes from demo database resulting in smaller size (Jason Linhart)
+* Moved changes for building windows DLL into separate patch
+* Fixed segfaults when passed malformed IP addresses
+
+
+1.0.3 2002-08-26
+
+* Added more changes for windows compatibility
+ (Stanislaw Pusep)
+* Added benchmark program
+
+
+1.0.2 2002-08-21
+
+* Open database using "rb" for windows compatibility
+ (Stanislaw Pusep)
+* Removed superfluous inet_ntop command (Stanislaw Pusep)
+
+
+1.0.1 2002-08-20
+
+* Fixed bug with resolving hostnames
+* More fixes for compiler warnings (Chris Gibbs)
+* Changed int to unsigned int in _is_ipaddr (Chris Gibbs)
+
+
+1.0.0 2002-08-12
+
+* Changed license to GPL
+* Don't perform Reverse DNS lookups on IP addresses
+* Only include getopt.h on Linux (OpenPKG patch)
+* Avoid the_license_key_str warning (OpenPKG patch)
+* Added license for March 2002 database
+
+
+0.3.0 2002-08-04
+
+* Added support for 'A2', Satellite Providers
+
+
+0.2.8 2002-07-30
+
+* Handle malformed input gracefully
+* Added section to README on Solaris workarounds
+* Added geoipupdate man page
+
+
+0.2.7 2002-07-27
+
+* Added section to README on automatic updates
+* link to socket library on solaris
+
+
+0.2.6 2002-07-25
+
+* optimized GeoIP_open (Chris Gibbs)
+* check for partial file read in GeoIP_open (Chris Gibbs)
+* optimized _addr_to_num() (Chris Gibbs)
+* changed write and read to send and recv for sockets
+* Only install GeoIP.conf and GeoIP.dat if not already installed
+
+
+0.2.5 2002-07-22
+
+* Added verbose option to GeoIP_update_database
+
+
+0.2.4 2002-07-22
+
+* Fix for GeoIP_update_database
+
+
+0.2.3 2002-07-22
+
+* Fixes for FreeBSD
+* All calls to malloc are checked for NULL pointer (Chris Gibbs)
+* Fixed spelling of "Kazakhstan" (Chris Gibbs)
+* Initialize cache_buf to NULL (Chris Gibbs)
+* More memory leak fixes (Chris Gibbs)
+
+
+0.2.2 2002-07-18
+
+* Added update database function
+* Fixed memory leak in GeoIP_new (Chris Gibbs)
+
+
+0.2.1 2002-07-03
+
+* Added support for anonymous proxies
+
+
+0.2.0 2002-06-23
+
+* Added new memory caching option for improved performance
+
+
+0.1.7 2002-05-29
+
+* Only add -lnsl for systems that support libnsl
+* Added decl for 3 letter country code array to GeoIP.h
+
+
+0.1.6 2002-05-25
+
+* Added 3 letter country code
+
+
+0.1.5 2002-05-23
+
+* Added -lnsl fixed compile errors
+
+
+0.1.4 2002-05-11
+
+* Fixed bugs in demo March 2002 database
+
+
+0.1.3 2002-04-21
+
+* Fixed bug related to signed int (Brian Grossman)
+* Better error handling when hostname not found
+* Fixed bug when netmask=32 for netblock
+
+
+0.1.2 2002-04-20
+
+* Added two new functions, GeoIP_country_id_by_addr
+ and GeoIP_country_id_by_name.
+* Made GeoIP_country_code and GeoIP_country_name
+ viewable outside of library, to be with with
+ GeoIP_country_id_by_* functions.
+
+
+0.1.1 2002-04-07
+
+* GeoIP.h is now installed to includedir
+* constructor and destructor are now provided by
+ GeoIP_new, GeoIP_open, and GeoIP_delete
+
+
+0.1.0 2002-04-07
+
+* Initial release