diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 973 |
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 |