]> git.ipfire.org Git - people/ms/libloc.git/log
people/ms/libloc.git
2 years agoimporter: Catch TimeoutError when loading Geofeeds
Michael Tremer [Tue, 4 Jul 2023 09:48:44 +0000 (09:48 +0000)] 
importer: Catch TimeoutError when loading Geofeeds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Silence invalid country code warning
Michael Tremer [Tue, 4 Jul 2023 09:48:06 +0000 (09:48 +0000)] 
importer: Silence invalid country code warning

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Skip lines we cannot decode
Michael Tremer [Tue, 4 Jul 2023 09:47:40 +0000 (09:47 +0000)] 
importer: Skip lines we cannot decode

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Convert country codes to uppercase from Geofeeds
Michael Tremer [Tue, 4 Jul 2023 09:38:15 +0000 (09:38 +0000)] 
importer: Convert country codes to uppercase from Geofeeds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Silently ignore any empty country codes in Geofeeds
Michael Tremer [Tue, 4 Jul 2023 09:36:50 +0000 (09:36 +0000)] 
importer: Silently ignore any empty country codes in Geofeeds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Drop method to import routing information from route servers
Michael Tremer [Tue, 4 Jul 2023 09:32:09 +0000 (09:32 +0000)] 
importer: Drop method to import routing information from route servers

telnetlib in Python is deprecated and will be removed in Python 3.13.
Since we don't use this feature any more, this patch removes it
entirely.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoMerge remote-tracking branch 'origin/geofeed'
Michael Tremer [Mon, 3 Jul 2023 15:23:48 +0000 (15:23 +0000)] 
Merge remote-tracking branch 'origin/geofeed'

2 years agoexport: Raise an error when trying to export ipset for both families
Michael Tremer [Mon, 3 Jul 2023 15:05:13 +0000 (15:05 +0000)] 
export: Raise an error when trying to export ipset for both families

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agolocation: Fix correct set name when family is selected
Michael Tremer [Mon, 3 Jul 2023 14:53:50 +0000 (14:53 +0000)] 
location: Fix correct set name when family is selected

This does however not fix the problem if no --family= parameter is being
given because we will then export for multiple families in one file.

This is for example not supported for ipset.

Fixes: #12897
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agonetwork: Drop an unused function to count all networks
Michael Tremer [Sat, 4 Mar 2023 10:52:51 +0000 (10:52 +0000)] 
network: Drop an unused function to count all networks

Reported-by: Gisle Vanem <gvanem@online.no>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoMakefile: Make sure to ship bash completion files even when disabled
Michael Tremer [Tue, 28 Feb 2023 11:42:50 +0000 (11:42 +0000)] 
Makefile: Make sure to ship bash completion files even when disabled

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoInstall bash-completion files.
Stefan Schantl [Fri, 24 Feb 2023 16:22:06 +0000 (17:22 +0100)] 
Install bash-completion files.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoAdd bash-completion file for the location command.
Hans-Christoph Steiner [Fri, 24 Feb 2023 16:22:05 +0000 (17:22 +0100)] 
Add bash-completion file for the location command.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agopo: Add Georgian translation
Temuri Doghonadze [Wed, 22 Feb 2023 14:53:39 +0000 (14:53 +0000)] 
po: Add Georgian translation

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agopo: Update translations
Michael Tremer [Wed, 22 Feb 2023 14:50:03 +0000 (14:50 +0000)] 
po: Update translations

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Fix parsing gzipped content on invalid Content-Type header
Michael Tremer [Fri, 2 Dec 2022 11:06:01 +0000 (11:06 +0000)] 
importer: Fix parsing gzipped content on invalid Content-Type header

RIPE seems to have misconfigured their webserver which now sends
application/octet-stream for all gzipped files instead of
application/x-gzip or similar which is what the importer would expect.

Instead of only checking the content type, we will now test whether we
see the gzip magic and try to decompress the file then.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoconfigure: Bump version to 0.9.16 0.9.16
Michael Tremer [Sat, 29 Oct 2022 13:25:36 +0000 (13:25 +0000)] 
configure: Bump version to 0.9.16

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoconfigure: Drop superfluous bracket
Michael Tremer [Sat, 29 Oct 2022 13:23:08 +0000 (13:23 +0000)] 
configure: Drop superfluous bracket

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoInstall Perl files to Perl vendor directory
Petr Písař [Tue, 4 Oct 2022 11:51:21 +0000 (13:51 +0200)] 
Install Perl files to Perl vendor directory

On Fedora, the original code placed files into /usr/lib64/perl5/5.36/.
That location is not recognized by Fedora perl.

It also supresses installation and uninstallaion of packlist and perlocal
inventory files. They cannot be reliably uninstalled without
corrupting them.

Signed-off-by: Petr Písař <ppisar@redhat.com>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Fix check if a signature is set
Michael Tremer [Sat, 29 Oct 2022 13:12:23 +0000 (13:12 +0000)] 
database: Fix check if a signature is set

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agowriter: Assign correct file descriptor for private keys
Michael Tremer [Sat, 29 Oct 2022 13:12:06 +0000 (13:12 +0000)] 
writer: Assign correct file descriptor for private keys

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agowriter: Fix typo in signature variable
Michael Tremer [Sat, 29 Oct 2022 13:11:48 +0000 (13:11 +0000)] 
writer: Fix typo in signature variable

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Correct error code on verification
Michael Tremer [Fri, 21 Oct 2022 10:42:41 +0000 (10:42 +0000)] 
database: Correct error code on verification

If the first signature check returned an error, the error code was
overwritten by the second signature check, returning an overall
incorrect result.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoCreate the database with read-only permissions for everyone
Michael Tremer [Fri, 21 Oct 2022 10:26:25 +0000 (10:26 +0000)] 
Create the database with read-only permissions for everyone

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoMove location manual from section 8 to section 1 in location-update.service
Petr Písař [Thu, 6 Oct 2022 11:28:51 +0000 (13:28 +0200)] 
Move location manual from section 8 to section 1 in location-update.service

It's a tool a non-superuser can use. It's installed into /usr/bin.

Signed-off-by: Petr Písař <ppisar@redhat.com>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoRemove shebangs from Python modules
Petr Písař [Tue, 4 Oct 2022 14:16:07 +0000 (16:16 +0200)] 
Remove shebangs from Python modules

Shebangs only belong to standalone executables.

Fixes: #12956
Signed-off-by: Petr Písař <ppisar@redhat.com>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoMove location manual from section 8 to section 1
Petr Písař [Thu, 6 Oct 2022 11:28:51 +0000 (13:28 +0200)] 
Move location manual from section 8 to section 1

It's a tool a non-superuser can use. It's installed into /usr/bin.

Fixes: #12957
Signed-off-by: Petr Písař <ppisar@redhat.com>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agotests: Drop the test database and use the distributed one
Michael Tremer [Thu, 20 Oct 2022 13:35:55 +0000 (13:35 +0000)] 
tests: Drop the test database and use the distributed one

Fixes: #12958
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Ship a recent default database
Michael Tremer [Thu, 20 Oct 2022 13:23:14 +0000 (13:23 +0000)] 
database: Ship a recent default database

The database can easily be updated using "make update-database" which
will have to be executed before every release.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoDeclare make dependencies for Perl binding
Petr Písař [Wed, 19 Oct 2022 09:50:23 +0000 (11:50 +0200)] 
Declare make dependencies for Perl binding

Running make in parallel (make -j5) randomly failed with:

/bin/sh ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.  -include ./config.h -DSYSCONFDIR=\""/etc"\" -I./src  -Wall -Wchar-subscripts -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wshadow -Wsign-compare -Wstrict-prototypes -Wtype-limits  -fno-semantic-interposition -ffunction-sections -fdata-sections -DLIBLOC_PRIVATE -fvisibility=hidden -g -O2 -c -o src/libloc_internal_la-database.lo `test -f 'src/database.c' || echo './'`src/database.c
/usr/bin/ld: cannot find -lloc: No such file or directory
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:482: blib/arch/auto/Location/Location.so] Error 1
make[2]: *** [Makefile:2982: build-perl] Error 2

That's because build-perl did not depend on libloc library.

A similar issue was with running tests and installing files. Moreover,
thess two targets rebuilt Perl binding from scratch.

This patch make the dependencies explicit and turns build-perl into
non-PHONY.

Fixes: #12961
Signed-off-by: Petr Písař <ppisar@redhat.com>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoRevert "perl: Remove RPATH"
Michael Tremer [Mon, 17 Oct 2022 13:56:49 +0000 (13:56 +0000)] 
Revert "perl: Remove RPATH"

This reverts commit fb574759cbd3a60e64ed2674f514037b9085f078.

Suggested-by: Petr Pisar <ppisar@redhat.com>
Fixes: #12955
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoexport: Fix generating file names for ipset output
Michael Tremer [Tue, 4 Oct 2022 08:47:03 +0000 (08:47 +0000)] 
export: Fix generating file names for ipset output

The tag that is being used in the filename was set after creating the
filename. The order has now been fixed and the export works fine for me.

Fixes: #12944
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoMakefile: Reset Python path
Michael Tremer [Sat, 1 Oct 2022 11:56:31 +0000 (11:56 +0000)] 
Makefile: Reset Python path

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Validate country codes from Geofeeds
Michael Tremer [Tue, 27 Sep 2022 08:49:56 +0000 (08:49 +0000)] 
importer: Validate country codes from Geofeeds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Ensure that we only use HTTPS URLs for Geofeeds
Michael Tremer [Tue, 27 Sep 2022 08:05:11 +0000 (08:05 +0000)] 
importer: Ensure that we only use HTTPS URLs for Geofeeds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Fix reading Geofeeds from remarks
Michael Tremer [Tue, 27 Sep 2022 08:03:23 +0000 (08:03 +0000)] 
importer: Fix reading Geofeeds from remarks

Only RIPE has a dedicated geofeed field. For others, this data needs to
be read from the remarks section.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Add a search index match geofeed networks quicker
Michael Tremer [Tue, 27 Sep 2022 08:01:23 +0000 (08:01 +0000)] 
importer: Add a search index match geofeed networks quicker

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Use a GIST index for networks from geofeeds
Michael Tremer [Tue, 27 Sep 2022 08:00:59 +0000 (08:00 +0000)] 
importer: Use a GIST index for networks from geofeeds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Use geofeeds for country assignment
Michael Tremer [Tue, 27 Sep 2022 08:00:37 +0000 (08:00 +0000)] 
importer: Use geofeeds for country assignment

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Sync geofeeds
Michael Tremer [Tue, 27 Sep 2022 07:59:37 +0000 (07:59 +0000)] 
importer: Sync geofeeds

Geofeeds are kept in a separate table to only fetch them once per URL.
This needs to be kept in sync which is done before we update any feeds.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Just fetch any exception from the executor
Michael Tremer [Tue, 27 Sep 2022 07:58:41 +0000 (07:58 +0000)] 
importer: Just fetch any exception from the executor

Any exceptions will only be raised in the main thread when they are
fetched from the executor. We do not need to print any other return
values here.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Add command to import geofeeds into the database
Michael Tremer [Mon, 26 Sep 2022 23:11:16 +0000 (23:11 +0000)] 
importer: Add command to import geofeeds into the database

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Store geofeed URLs from RIR data
Michael Tremer [Mon, 26 Sep 2022 22:05:45 +0000 (22:05 +0000)] 
importer: Store geofeed URLs from RIR data

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agowriter: Add an empty string to the stringpool
Michael Tremer [Tue, 27 Sep 2022 16:28:44 +0000 (16:28 +0000)] 
writer: Add an empty string to the stringpool

This is useful when we have some offset that isn't initialised. It will
point to the start of the string pool which is some random string that
happened to be added first.

An empty string at least signifies better that something is unset.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agopython: Export __version__ in location module
Michael Tremer [Mon, 26 Sep 2022 23:10:43 +0000 (23:10 +0000)] 
python: Export __version__ in location module

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoconfigure: Fix incorrect database path
Michael Tremer [Tue, 27 Sep 2022 09:54:45 +0000 (09:54 +0000)] 
configure: Fix incorrect database path

Reported-by: Jochen Sprickerhof <jochen@sprickerhof.de>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Fix potential SQL command injection
Michael Tremer [Tue, 27 Sep 2022 09:20:05 +0000 (09:20 +0000)] 
importer: Fix potential SQL command injection

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agolocation-importer.in: Add new Amazon region codes
Peter Müller [Mon, 26 Sep 2022 18:33:29 +0000 (18:33 +0000)] 
location-importer.in: Add new Amazon region codes

Note that the precise location of "ap-southeast-6" is currently
undocumented. However, all IPv4 networks allocated are not routed at the
time of writing, hence our allocation of Asia/Pacific should be
acceptable for the time being.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agolocation-importer.in: Conduct sanity checks per DROP list
Peter Müller [Mon, 26 Sep 2022 18:26:44 +0000 (18:26 +0000)] 
location-importer.in: Conduct sanity checks per DROP list

Previously, the lack of distinction between different DROP lists caused
only the last one to be persisted. The second version of this patch
incorporates suggestions from Michael on the first version.

Tested-by: Peter Müller <peter.mueller@ipfire.org>
Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoconfigure: Bump version to 0.9.15 0.9.15
Michael Tremer [Mon, 26 Sep 2022 15:39:58 +0000 (15:39 +0000)] 
configure: Bump version to 0.9.15

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agopython: Add new open() interface to easily open a database
Michael Tremer [Tue, 13 Sep 2022 12:06:24 +0000 (12:06 +0000)] 
python: Add new open() interface to easily open a database

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoconfigure: Make the default database path configurable
Michael Tremer [Tue, 13 Sep 2022 11:56:28 +0000 (11:56 +0000)] 
configure: Make the default database path configurable

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agowriter: Flush everything to disk after writing finishes
Michael Tremer [Fri, 9 Sep 2022 14:28:27 +0000 (14:28 +0000)] 
writer: Flush everything to disk after writing finishes

This might solve a race in the testsuite.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoRevert "database: Increase page size to 64k"
Michael Tremer [Fri, 9 Sep 2022 14:22:45 +0000 (14:22 +0000)] 
Revert "database: Increase page size to 64k"

This reverts commit 8a330e5575d9f39d2b7716b238e894a650e9605a.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agotests: country: Don't crash when a country could not be found
Michael Tremer [Fri, 9 Sep 2022 14:21:42 +0000 (14:21 +0000)] 
tests: country: Don't crash when a country could not be found

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agocountry: Drop unused CC_LEN
Michael Tremer [Thu, 1 Sep 2022 14:56:54 +0000 (14:56 +0000)] 
country: Drop unused CC_LEN

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoFix compilation on MacOS X
Michael Tremer [Tue, 23 Aug 2022 13:59:48 +0000 (14:59 +0100)] 
Fix compilation on MacOS X

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoconfigure: Check for madvise
Michael Tremer [Tue, 23 Aug 2022 13:20:10 +0000 (13:20 +0000)] 
configure: Check for madvise

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agotests: Add signing key to verify signatures
Michael Tremer [Tue, 23 Aug 2022 13:19:57 +0000 (13:19 +0000)] 
tests: Add signing key to verify signatures

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Initialize r on create
Michael Tremer [Tue, 23 Aug 2022 13:15:40 +0000 (13:15 +0000)] 
database: Initialize r on create

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Drop debug line
Michael Tremer [Tue, 23 Aug 2022 13:06:50 +0000 (13:06 +0000)] 
database: Drop debug line

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Drop unused offset variable in objects
Michael Tremer [Tue, 23 Aug 2022 13:05:29 +0000 (13:05 +0000)] 
database: Drop unused offset variable in objects

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Encourage the compiler to inline some functions
Michael Tremer [Tue, 23 Aug 2022 13:04:16 +0000 (13:04 +0000)] 
database: Encourage the compiler to inline some functions

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Call madvise() to tell the kernel that we will randomly access the data
Michael Tremer [Tue, 23 Aug 2022 13:02:50 +0000 (13:02 +0000)] 
database: Call madvise() to tell the kernel that we will randomly access the data

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Read all data from the large mmap()
Michael Tremer [Tue, 23 Aug 2022 12:56:10 +0000 (12:56 +0000)] 
database: Read all data from the large mmap()

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agohexdump: Don't try to dump any empty memory
Michael Tremer [Tue, 23 Aug 2022 12:54:12 +0000 (12:54 +0000)] 
hexdump: Don't try to dump any empty memory

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Read header from mapped data
Michael Tremer [Tue, 23 Aug 2022 12:11:26 +0000 (12:11 +0000)] 
database: Read header from mapped data

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Map the entire database into memory as a whole
Michael Tremer [Tue, 23 Aug 2022 10:12:13 +0000 (10:12 +0000)] 
database: Map the entire database into memory as a whole

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Check if this version of libloc supports the database format
Michael Tremer [Tue, 23 Aug 2022 10:01:19 +0000 (10:01 +0000)] 
database: Check if this version of libloc supports the database format

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Refactor checking magic
Michael Tremer [Tue, 23 Aug 2022 09:56:49 +0000 (09:56 +0000)] 
database: Refactor checking magic

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Break opening procedure into smaller parts
Michael Tremer [Tue, 23 Aug 2022 09:50:27 +0000 (09:50 +0000)] 
database: Break opening procedure into smaller parts

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Refactor error handling on create
Michael Tremer [Tue, 23 Aug 2022 09:46:33 +0000 (09:46 +0000)] 
database: Refactor error handling on create

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agotests: database: Expand test coverage
Michael Tremer [Tue, 23 Aug 2022 09:40:34 +0000 (09:40 +0000)] 
tests: database: Expand test coverage

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agopython: Export DatabaseEnumerator type
Michael Tremer [Tue, 23 Aug 2022 09:40:21 +0000 (09:40 +0000)] 
python: Export DatabaseEnumerator type

This is useful for tests

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: country: Return better error codes
Michael Tremer [Tue, 23 Aug 2022 09:35:54 +0000 (09:35 +0000)] 
database: country: Return better error codes

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agostringpool: Drop function to find next offset
Michael Tremer [Mon, 22 Aug 2022 17:42:59 +0000 (17:42 +0000)] 
stringpool: Drop function to find next offset

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agotests: Add some simple database tests
Michael Tremer [Mon, 22 Aug 2022 17:32:43 +0000 (17:32 +0000)] 
tests: Add some simple database tests

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Fall back when mmap() isn't available
Michael Tremer [Mon, 22 Aug 2022 17:28:30 +0000 (17:28 +0000)] 
database: Fall back when mmap() isn't available

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agostringpool: Implement mmap as optional
Michael Tremer [Mon, 22 Aug 2022 17:26:26 +0000 (17:26 +0000)] 
stringpool: Implement mmap as optional

This patch will allow mmap() to fail and will make the reader
fall back to read from the given file descriptor.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agopython: Fix errors for Database.lookup()
Michael Tremer [Mon, 22 Aug 2022 17:07:41 +0000 (17:07 +0000)] 
python: Fix errors for Database.lookup()

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Improve error reporting when the magic cannot be read
Michael Tremer [Mon, 22 Aug 2022 14:06:53 +0000 (14:06 +0000)] 
database: Improve error reporting when the magic cannot be read

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agopython: Correctly raise any errors when opening the database
Michael Tremer [Mon, 22 Aug 2022 13:45:44 +0000 (13:45 +0000)] 
python: Correctly raise any errors when opening the database

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Increase page size to 64k
Michael Tremer [Mon, 22 Aug 2022 10:37:29 +0000 (10:37 +0000)] 
database: Increase page size to 64k

Since libloc is currently only using mmap() to map any databases into
memory, all mapped address range needs to be page aligned.

In the past, every database was aligned to a 4k page boundary. Some
architectures use 64k pages by default which could therefore not open
the database.

This patch changes the alignment to 64k which should hopefully be a
good common denominator. However, older database cannot be opened.

If we would ever have to support an architecture which's page size
is not evenly fitting into 64k, we will have to implement an
alternative to mmap.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Log any errors when mmap() fails
Michael Tremer [Mon, 22 Aug 2022 10:21:55 +0000 (10:21 +0000)] 
database: Log any errors when mmap() fails

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Do not try to unmap failed mappings
Michael Tremer [Mon, 22 Aug 2022 10:20:08 +0000 (10:20 +0000)] 
database: Do not try to unmap failed mappings

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agodatabase: Use MAP_PRIVATE with mmap()
Michael Tremer [Tue, 16 Aug 2022 10:58:53 +0000 (10:58 +0000)] 
database: Use MAP_PRIVATE with mmap()

We do not have any changes that need to be propagated down to the file.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agowriter: Check if stringpool has been initialized before free
Michael Tremer [Tue, 16 Aug 2022 10:35:15 +0000 (10:35 +0000)] 
writer: Check if stringpool has been initialized before free

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoconfigure: Replace obsolete AC_PROG_CC_STDC macro
Michael Tremer [Tue, 16 Aug 2022 10:31:14 +0000 (10:31 +0000)] 
configure: Replace obsolete AC_PROG_CC_STDC macro

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoCheck return value of fread() when reading header
Michael Tremer [Tue, 16 Aug 2022 10:30:56 +0000 (10:30 +0000)] 
Check return value of fread() when reading header

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agocron: Add a cronjob if systemd is not available
Michael Tremer [Tue, 16 Aug 2022 09:20:44 +0000 (09:20 +0000)] 
cron: Add a cronjob if systemd is not available

This will allow us to build this package when systemd is not available
(e.g. on Debian kfreebsd/hurd).

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years ago*_unref: Always expect a valid pointer
Michael Tremer [Mon, 15 Aug 2022 18:42:45 +0000 (18:42 +0000)] 
*_unref: Always expect a valid pointer

Those functions have been very inconsistent in that way that some
happily accepted a NULL pointer and others didn't.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agocountry: Refactor storing country code and continent code
Michael Tremer [Mon, 15 Aug 2022 18:38:02 +0000 (18:38 +0000)] 
country: Refactor storing country code and continent code

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoDon't abuse errno as return code
Michael Tremer [Mon, 15 Aug 2022 18:12:10 +0000 (18:12 +0000)] 
Don't abuse errno as return code

errno is not either set properly, or left set properly by any function
that we have called.

Return codes should either be zero or non-zero for functions unless they
are some value.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoReplace strerror(errno) with %m in format string throughout
Michael Tremer [Mon, 15 Aug 2022 17:45:12 +0000 (17:45 +0000)] 
Replace strerror(errno) with %m in format string throughout

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agolocation-importer.in: Fix dangling variable
Peter Müller [Sun, 14 Aug 2022 16:02:55 +0000 (16:02 +0000)] 
location-importer.in: Fix dangling variable

This fixes:

Traceback (most recent call last):
  File "/usr/bin/location-importer", line 1607, in <module>
    main()
  File "/usr/bin/location-importer", line 1605, in main
    c.run()
  File "/usr/bin/location-importer", line 140, in run
    ret = args.func(args)
  File "/usr/bin/location-importer", line 1234, in handle_update_overrides
    self._update_overrides_for_spamhaus_drop()
  File "/usr/bin/location-importer", line 1504, in _update_overrides_for_spamhaus_drop
    for sline in t.readlines():
NameError: name 't' is not defined

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoconfigure: Bump release to 0.9.14 0.9.14
Michael Tremer [Sun, 14 Aug 2022 12:26:12 +0000 (12:26 +0000)] 
configure: Bump release to 0.9.14

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoMakefile: Pack all debian files into the tarball
Michael Tremer [Sun, 14 Aug 2022 12:23:30 +0000 (12:23 +0000)] 
Makefile: Pack all debian files into the tarball

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Import all sources in alphabetical order
Michael Tremer [Fri, 12 Aug 2022 15:49:13 +0000 (15:49 +0000)] 
importer: Import all sources in alphabetical order

To generate deterministic results

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agoimporter: Tolerate that data might exist from other RIRs
Michael Tremer [Fri, 12 Aug 2022 15:47:29 +0000 (15:47 +0000)] 
importer: Tolerate that data might exist from other RIRs

Since we are breaking the import into smaller chunks now, it might be
that some data already exists in the database. This is now being
ignored and data won't be replaced.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 years agopython: Fix missing bracket
Michael Tremer [Fri, 12 Aug 2022 15:47:20 +0000 (15:47 +0000)] 
python: Fix missing bracket

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>