Based on a PR by Jussi Sallinen.
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.
- A warning about using a double as a float was fixed.
- Fixed segfault when doing a lookup on an empty database.
- Fixed a memcheck error from valgrind in the `_check_mtime`
function.
- 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.
- Additional validation was added for validation of the size used in the
creation of the index cache.
- 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.
1.6.4 2015-01-12
- Update Fips codes
- Several issues with the MinGW build were fixed.
- Use a constructor in pread.c to ensure the critical section is always
initialized.
- Added missing include of `io.h` on Windows.
- Fixed `configure` warning that `'missing' script is too old or missing`.
- Previously `nmake /f Makefile.vc clean` would fail on Windows. This was
fixed.
- Obsolete win32 and NetWare make files were removed.
- Numerous documentation updates.
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.
- Mitigate a possible race condition when running under threads in the
GeoIP_cleanup function.
- Added some recommendations to the docs on using this library in a
threaded application.
- Fixed some bugs discovered by coverity, including failure to check some
system call return values and making sure all strings are
null-terminated.
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.
1.6.1 2014-06-26
- Improve Win32 support
- Update FIPS codes
1.6.0 2013-10-29
- Remove geoipupdate
1.5.2 2013-10-29
- Update region and time zones
- Fix benchmark script
- Remove autogenerated files ltmain.sh, man/geoip*.1
- Explain how to download free geolite databases in the README.md and
GeoIP.conf.default
- geoipupdate returns 1 on error 0 on success instead of the error code
- README is replaced by README.md
- Add support for OS X Mavericks
1.5.1 2013-05-14
- Update time_zone for Ontario, Canada
- geoiplookup and geoiplookup6 exit code is 0 when user asked for help
- Added -h option to geoiplookup6
- Do not load the database file if nodes and file size do not make
sense.
- Keep README and man pages in pure ascii.
- 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
- Update FIPS codes for Greece
1.5.0 2013-02-21
- Rename custom_directory to GeoIP_custom_directory.
- 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)
- apps/geoiplookup6.c use the ipnum instead of the hostname for lookups.
- Use configure.ac instead of configure.in
- Region lookup is a bit faster
- Add pkg-config file
- Updates required to build a Windows DLL under MinGW
- Make API thread safe
- geoiplookup's default charset is UTF8
-l change the charset back to iso8859-1
- geoipupdate skips \r otherwise it might be part of the last
product_id
- Update time zones
- Update Region codes
- Remove the unused CITYCONFIDENCE* database types
- bootstrap rebuilds ltmain.sh
- Update README.OSX for Lion
- Change Macedonia to Macedonia, The Former Yugoslav Republic of
- Add region_name to geoiplookup GEOIP_CITY_EDITION_REV1
- Add region_name to geoiplookup GEOIP_CITY_EDITION_REV0
- 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
- Add GEOIP_ACCURACYRADIUS_EDITION and GEOIP_ACCURACYRADIUS_EDITION_V6
- Add more database types GEOIP_COUNTRYCONF_EDITION,
GEOIP_CITYCONF_EDITION, GEOIP_REGIONCONF_EDITION and
GEOIP_POSTALCONF_EDITION
- Fix default filenames for GEOIP_NETSPEED_EDITION_REV1 and
GEOIP_NETSPEED_EDITION_REV1_V6
Pkgsrc changes:
- Added TEST_TARGET.
[Relevant] changes since version 1.3.8:
=======================================
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
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
* Check for stdint.h in autoconf
* prevent the geoipupdate man page from trying to install itself directly
in the system directory
* Fixed includes to compile on Windows
* Removed the _addr_to_num() calls from GeoIP_*_by_name()
* _seek_record() optimizations
* Added GeoIP_assign_region_by_inetaddr which doesn't do any mallocs and
made all other region APIs go thru it
* Replaced _h_addr_to_num() with ntohl() and removed _h_addr_to_num()
* Fixed bug when IP address not found in region rev1 database
* Added added extern "C" to GeoIPCity.h fixes problems when included
in C ++ library
* Added support for GeoIP ISP Edition identifier
* Fixed bug in GeoIP_database_info
* 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_*
* Added GeoIP_record_id_by_addr and GeoIP_next_record functions
* Added support for new GeoIP Region format, including Canadian Provinces
* 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 data bases
* 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
Closes PR pkg/23909.
GeoIP is a C library that enables the user to find the country that any IP
address or hostname originates from. It uses a file based database that is
accurate as of March 2002. This database simply contains IP blocks as keys,
and countries as values. It should be more complete and accurate than using
reverse DNS lookups.
This module can be used to automatically select the geographically closest
mirror, to analyze your web server logs to determine the countries of your
visitors, for credit card fraud detection, and for software export controls.
Package initially provided by Juan RP through pkgsrc-wip, with several
changes by me.