]> git.ipfire.org Git - location/libloc.git/log
location/libloc.git
2 months agolog: Perform formatting string sanitation when logging to stderr
Michael Tremer [Thu, 6 Mar 2025 18:10:56 +0000 (18:10 +0000)] 
log: Perform formatting string sanitation when logging to stderr

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Install perl(Test::More) on Fedora
Michael Tremer [Thu, 6 Mar 2025 18:08:46 +0000 (18:08 +0000)] 
jenkins: Install perl(Test::More) on Fedora

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agotests: Constify path to open in database test
Michael Tremer [Thu, 6 Mar 2025 18:00:45 +0000 (18:00 +0000)] 
tests: Constify path to open in database test

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoaddress: Never pass zero to __builtin_ctz
Michael Tremer [Thu, 6 Mar 2025 17:59:03 +0000 (17:59 +0000)] 
address: Never pass zero to __builtin_ctz

This is undefined behaviour which worked just fine in GCC, but in clang
the code is doing funny business.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoconfigure: Enable more compiler warnings
Michael Tremer [Thu, 6 Mar 2025 17:45:38 +0000 (17:45 +0000)] 
configure: Enable more compiler warnings

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoFix all sorts of string formatting issues
Michael Tremer [Thu, 6 Mar 2025 17:43:17 +0000 (17:43 +0000)] 
Fix all sorts of string formatting issues

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agotests: Make bit length mismatch message clearer
Michael Tremer [Thu, 6 Mar 2025 16:53:44 +0000 (16:53 +0000)] 
tests: Make bit length mismatch message clearer

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Upload logs from tests in src/, too
Michael Tremer [Thu, 6 Mar 2025 16:43:29 +0000 (16:43 +0000)] 
jenkins: Upload logs from tests in src/, too

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agotree: Try harder to merge networks
Michael Tremer [Thu, 6 Mar 2025 16:37:09 +0000 (16:37 +0000)] 
tree: Try harder to merge networks

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agotree: Add network to the stack after we have tried again
Michael Tremer [Thu, 6 Mar 2025 16:24:46 +0000 (16:24 +0000)] 
tree: Add network to the stack after we have tried again

If we add it before, we will try to merge the network with itself which
is not necessary as it will never result in anything good.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoconfigure: Make Lua check work on Fedora, too
Michael Tremer [Thu, 6 Mar 2025 15:48:55 +0000 (15:48 +0000)] 
configure: Make Lua check work on Fedora, too

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Install lua-unit wherever available
Michael Tremer [Thu, 6 Mar 2025 15:18:56 +0000 (15:18 +0000)] 
jenkins: Install lua-unit wherever available

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoconfigure: Don't run Lua tests if luaunit is not available
Michael Tremer [Thu, 6 Mar 2025 15:13:25 +0000 (15:13 +0000)] 
configure: Don't run Lua tests if luaunit is not available

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agodebian: Don't build packages against Lua
Michael Tremer [Thu, 6 Mar 2025 15:08:12 +0000 (15:08 +0000)] 
debian: Don't build packages against Lua

This is a little bit more complicated, because we probably want to build
against multiple versions and I don't know how to do this.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Actually install Lua when we want to build against it
Michael Tremer [Thu, 6 Mar 2025 15:07:00 +0000 (15:07 +0000)] 
jenkins: Actually install Lua when we want to build against it

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Add all supported Debian architectures
Michael Tremer [Thu, 6 Mar 2025 15:03:51 +0000 (15:03 +0000)] 
jenkins: Add all supported Debian architectures

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoconfigure: Fail if Lua was enabled, but not found
Michael Tremer [Thu, 6 Mar 2025 15:00:58 +0000 (15:00 +0000)] 
configure: Fail if Lua was enabled, but not found

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Remove extra tests we currently don't support
Michael Tremer [Thu, 6 Mar 2025 14:44:42 +0000 (14:44 +0000)] 
jenkins: Remove extra tests we currently don't support

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Don't expect any tests to fail
Michael Tremer [Thu, 6 Mar 2025 14:42:15 +0000 (14:42 +0000)] 
jenkins: Don't expect any tests to fail

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Always Lua extension, too
Michael Tremer [Thu, 6 Mar 2025 14:42:05 +0000 (14:42 +0000)] 
jenkins: Always Lua extension, too

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoconfigure: Check syntax of Lua check
Michael Tremer [Thu, 6 Mar 2025 14:39:01 +0000 (14:39 +0000)] 
configure: Check syntax of Lua check

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoconfigure: Don't automatically detect systemdunitdir
Michael Tremer [Thu, 6 Mar 2025 14:36:31 +0000 (14:36 +0000)] 
configure: Don't automatically detect systemdunitdir

This is no longer possible on newer versions of systemd where the
variable has been removed from pkg-config.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agojenkins: Initial import
Michael Tremer [Thu, 6 Mar 2025 11:42:50 +0000 (11:42 +0000)] 
jenkins: Initial import

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agodata: Import today's database
Michael Tremer [Sat, 28 Sep 2024 12:51:56 +0000 (12:51 +0000)] 
data: Import today's database

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agopo: Update POTFILES.in
Michael Tremer [Sat, 28 Sep 2024 12:48:20 +0000 (12:48 +0000)] 
po: Update POTFILES.in

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
2 months agoperl: Return nothing in case invalid data has been passed to libloc
Stefan Schantl [Sat, 28 Sep 2024 12:46:31 +0000 (14:46 +0200)] 
perl: Return nothing in case invalid data has been passed to libloc

The old croach approch instantly will stop the script if invalid data
will be passed to libloc and also will fail to proper execute the
testsuite.

Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
4 months agoimporter: Don't import /4 or /10 networks from the routing table
Michael Tremer [Fri, 10 Jan 2025 13:38:35 +0000 (13:38 +0000)] 
importer: Don't import /4 or /10 networks from the routing table

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
4 months agoimporter: Ignore any sudden disconnects when we fetch a Geofeed
Michael Tremer [Mon, 6 Jan 2025 11:00:10 +0000 (11:00 +0000)] 
importer: Ignore any sudden disconnects when we fetch a Geofeed

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
7 months agoimporter: Update a few AWS locations
Michael Tremer [Wed, 2 Oct 2024 18:33:24 +0000 (18:33 +0000)] 
importer: Update a few AWS locations

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
7 months agoperl: Fix a couple of NULL-pointer derefences in the module
Michael Tremer [Thu, 26 Sep 2024 20:25:57 +0000 (20:25 +0000)] 
perl: Fix a couple of NULL-pointer derefences in the module

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
7 months agolibloc: Refactor summarizing IP address ranges
Michael Tremer [Thu, 26 Sep 2024 19:48:03 +0000 (19:48 +0000)] 
libloc: Refactor summarizing IP address ranges

The algorithm seems to have had some bugs where it generated too many
unnecessary subnets which caused the system to run out of memory very
quickly when determining bogons.

This version of the algorithm is now a little bit smarter and should be
significantly faster as well.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
7 months agotests: lua: Set a variable to true if we are checking for a boolean later
Michael Tremer [Thu, 26 Sep 2024 16:45:52 +0000 (16:45 +0000)] 
tests: lua: Set a variable to true if we are checking for a boolean later

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
7 months agolua: Ensure that the testsuite is being executed with the correct version
Michael Tremer [Thu, 26 Sep 2024 14:52:38 +0000 (14:52 +0000)] 
lua: Ensure that the testsuite is being executed with the correct version

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
7 months agolua: Check if we got returned something on some tests
Michael Tremer [Thu, 26 Sep 2024 14:37:22 +0000 (14:37 +0000)] 
lua: Check if we got returned something on some tests

Since Lua does not know about exceptions, functions usually return nil
instead of some value.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
10 months agoimporter: Ensure that we set timestamps in the announcements table
Michael Tremer [Wed, 19 Jun 2024 09:36:26 +0000 (09:36 +0000)] 
importer: Ensure that we set timestamps in the announcements table

Otherwise aging out older announcements does not work.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
11 months agolua: Fix raising an exception if no network was found
Michael Tremer [Wed, 22 May 2024 18:12:04 +0000 (18:12 +0000)] 
lua: Fix raising an exception if no network was found

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
11 months agodatabase: Have the lookup function return 0 even if nothing was found
Michael Tremer [Wed, 22 May 2024 16:39:57 +0000 (16:39 +0000)] 
database: Have the lookup function return 0 even if nothing was found

This is a potentially breaking change, but I think we need to do this as
the previous return code was not very descriptive.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
11 months agolua: Implement setting a log callback function
Michael Tremer [Wed, 22 May 2024 15:35:28 +0000 (15:35 +0000)] 
lua: Implement setting a log callback function

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
11 months agolibloc: Allow passing a pointer to the log callback
Michael Tremer [Wed, 22 May 2024 15:30:31 +0000 (15:30 +0000)] 
libloc: Allow passing a pointer to the log callback

This is basically re-implemnting the logic to pass log settings as the
previous functions were inappropriately named.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
11 months agoRevert "database: Re-open the file handle in r+ mode"
Michael Tremer [Tue, 21 May 2024 15:46:31 +0000 (15:46 +0000)] 
Revert "database: Re-open the file handle in r+ mode"

This reverts commit 7654a5beb9b46758af613f15e01f8e0d0b3bd730.

This change breaks the library on Linux.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
11 months agolua: Initialize the database object pointer
Michael Tremer [Tue, 21 May 2024 15:34:57 +0000 (15:34 +0000)] 
lua: Initialize the database object pointer

Unfortunately Lua does not initialize any new user data. Therefore it
could happen that the cleanup function will try to tidy up after a new
Database object could not be set up correctly and cause a segmentation
fault.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
11 months agoconfigure: Scan for multiple Lua versions
Michael Tremer [Tue, 21 May 2024 15:11:23 +0000 (15:11 +0000)] 
configure: Scan for multiple Lua versions

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
12 months agodatabase: Re-open the file handle in r+ mode
Michael Tremer [Sat, 11 May 2024 11:10:06 +0000 (12:10 +0100)] 
database: Re-open the file handle in r+ mode

On Mac OS, we cannot re-read our temporary file from the testsuite unless we re-open in r+ mode.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
12 months agowriter: Move the cursor back to end when finished writing
Michael Tremer [Sat, 11 May 2024 10:56:26 +0000 (11:56 +0100)] 
writer: Move the cursor back to end when finished writing

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
12 months agowriter: Fail if the header could not be written successfully
Michael Tremer [Sat, 11 May 2024 10:55:46 +0000 (11:55 +0100)] 
writer: Fail if the header could not be written successfully

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
12 months agoMakefile: Don't try to use -export-symbols if --version-script= isn't available
Michael Tremer [Fri, 10 May 2024 17:51:45 +0000 (18:51 +0100)] 
Makefile: Don't try to use -export-symbols if --version-script= isn't available

libtool seems to mess up our symbol table by prepending an underscore character
to all lines which renders the file unparsable.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
12 months agoconfigure: Use pkg-config to find OpenSSL
Michael Tremer [Fri, 10 May 2024 17:23:57 +0000 (18:23 +0100)] 
configure: Use pkg-config to find OpenSSL

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoimporter: Drop EDROP as it has been merged into DROP
Michael Tremer [Thu, 11 Apr 2024 17:45:18 +0000 (17:45 +0000)] 
importer: Drop EDROP as it has been merged into DROP

http://www.spamhaus.org/resource-hub/network-security/spamhaus-drop-and-edrop-to-become-a-single-list/

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agolua: Add method to access database creation time
Michael Tremer [Mon, 8 Apr 2024 10:24:21 +0000 (10:24 +0000)] 
lua: Add method to access database creation time

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agolua: Add function that returns subnets of a network
Michael Tremer [Sat, 6 Apr 2024 11:11:28 +0000 (11:11 +0000)] 
lua: Add function that returns subnets of a network

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agonetwork: Add function to return a reverse pointer for networks
Michael Tremer [Sat, 6 Apr 2024 10:49:41 +0000 (10:49 +0000)] 
network: Add function to return a reverse pointer for networks

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agotests: Set LD_LIBRARY_PATH
Michael Tremer [Sat, 6 Apr 2024 10:33:33 +0000 (10:33 +0000)] 
tests: Set LD_LIBRARY_PATH

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoaddress: Add functions to access a specific byte/nibble in an address
Michael Tremer [Sat, 6 Apr 2024 10:33:06 +0000 (10:33 +0000)] 
address: Add functions to access a specific byte/nibble in an address

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agolua: Cleanup any database iterators
Michael Tremer [Fri, 5 Apr 2024 15:58:53 +0000 (15:58 +0000)] 
lua: Cleanup any database iterators

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agolua: Create a simple iterator for all networks
Michael Tremer [Fri, 5 Apr 2024 15:36:14 +0000 (15:36 +0000)] 
lua: Create a simple iterator for all networks

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agotests: Fix bit length tests
Michael Tremer [Fri, 5 Apr 2024 15:31:31 +0000 (15:31 +0000)] 
tests: Fix bit length tests

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agolua: Don't raise an error if a network cannot be found
Michael Tremer [Sun, 31 Mar 2024 16:33:34 +0000 (16:33 +0000)] 
lua: Don't raise an error if a network cannot be found

The lookup function now returns nil which is easier to handle than
catching a Lua error.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agolua: Add compatibility function to compile with Lua >= 5.1
Michael Tremer [Sun, 31 Mar 2024 14:16:14 +0000 (14:16 +0000)] 
lua: Add compatibility function to compile with Lua >= 5.1

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agotests: Add tests for #13236
Michael Tremer [Fri, 22 Mar 2024 14:45:41 +0000 (14:45 +0000)] 
tests: Add tests for #13236

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agonetwork: Fix handling bit length on merge
Michael Tremer [Fri, 22 Mar 2024 14:42:30 +0000 (14:42 +0000)] 
network: Fix handling bit length on merge

The check was kind of useless because of incorrect values from the bit
length function.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoaddress: Fix bit length calculation
Michael Tremer [Fri, 22 Mar 2024 14:41:44 +0000 (14:41 +0000)] 
address: Fix bit length calculation

I have no idea what the previous version computed, but it wasn't the
right thing.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoimporter: Permit Geofeeds for everything instead of ignoring
Michael Tremer [Tue, 19 Mar 2024 10:45:41 +0000 (10:45 +0000)] 
importer: Permit Geofeeds for everything instead of ignoring

This seems to become the default and so we should avoid making the
overrides file too verbose.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoimporter: Drop even more indexes
Michael Tremer [Mon, 18 Mar 2024 17:12:57 +0000 (17:12 +0000)] 
importer: Drop even more indexes

We have gone a little bit wild on this but should not need them.

This patch also migrates any GIST indexes to SP-GIST.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoimporter: Drop any indexes we no longer need
Michael Tremer [Mon, 18 Mar 2024 17:05:36 +0000 (17:05 +0000)] 
importer: Drop any indexes we no longer need

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoimporter: Make the export 200x faster
Michael Tremer [Mon, 18 Mar 2024 16:56:50 +0000 (16:56 +0000)] 
importer: Make the export 200x faster

The export became a huge problem here as it was very slow. One large
query produced one very large output which was difficult to test and
validate as the total export could easily take 17-20 hrs.

This patch fixes this so that the export now takes around ~5min. Sadly
we are still not using more than one processor core, because PostgreSQL
thinks its faster with just the one, but we trade a lot of CPU time for
a little bit of extra memory instead.

We create a new temporary table that holds all networks that we are
interested in. We then run a couple of broken down queries that perform
one thing instead of multiple at the same time.

First, we add all AS numbers, then all countries which are the longest
queries taking now around 20-30s. Then we apply any data from the
external feeds and our own overrides.

The final export requires about 1.7 GiB of memory because we don't
perform any deduplication in the database any more. That has been a lot
better implemented in our own code and I don't think that < 2 GiB is a
reason for concern.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoimporter: Replace all GIST indexes with SP-GIST
Michael Tremer [Mon, 18 Mar 2024 16:56:08 +0000 (16:56 +0000)] 
importer: Replace all GIST indexes with SP-GIST

They are a lot faster for our application.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoimporter: ANALYZE all tables before we are running the export
Michael Tremer [Mon, 18 Mar 2024 16:52:26 +0000 (16:52 +0000)] 
importer: ANALYZE all tables before we are running the export

This should help the query planner to make better decisions when
planning the large queries.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 months agoimporter: Remove more traces of the Geofeed overrides table
Michael Tremer [Sat, 16 Mar 2024 11:34:21 +0000 (11:34 +0000)] 
importer: Remove more traces of the Geofeed overrides table

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Convert networks back to string
Michael Tremer [Tue, 12 Mar 2024 11:24:47 +0000 (11:24 +0000)] 
importer: Convert networks back to string

psycopg3 returns inet types as IP networks.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Allow storing multiple Geofeeds for the same network
Michael Tremer [Tue, 12 Mar 2024 11:17:50 +0000 (11:17 +0000)] 
importer: Allow storing multiple Geofeeds for the same network

This is very likely not required except for a couple of overrides.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Currently update the source when encountering a conflict
Michael Tremer [Tue, 12 Mar 2024 11:14:13 +0000 (11:14 +0000)] 
importer: Currently update the source when encountering a conflict

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Unify the way we check Geofeed URLs
Michael Tremer [Tue, 12 Mar 2024 11:12:01 +0000 (11:12 +0000)] 
importer: Unify the way we check Geofeed URLs

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Import Geofeed overrides with other Geofeeds
Michael Tremer [Tue, 12 Mar 2024 11:06:22 +0000 (11:06 +0000)] 
importer: Import Geofeed overrides with other Geofeeds

The previous approach neglegted that we check if a Geofeed is permitted
to change the location for a subnet so that Geofeeds cannot overwrite
any subnets they don't belong to.

That means that we will have to add those networks to the Geofeeds as
well.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Remove a debugging line
Michael Tremer [Thu, 7 Mar 2024 14:03:50 +0000 (14:03 +0000)] 
importer: Remove a debugging line

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Convert the file handle to text before passing to the CSV parser
Michael Tremer [Thu, 7 Mar 2024 14:03:16 +0000 (14:03 +0000)] 
importer: Convert the file handle to text before passing to the CSV parser

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Fix another variable error in CSV parser
Michael Tremer [Thu, 7 Mar 2024 13:56:36 +0000 (13:56 +0000)] 
importer: Fix another variable error in CSV parser

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Skip ASN lines in extended format
Michael Tremer [Thu, 7 Mar 2024 13:56:20 +0000 (13:56 +0000)] 
importer: Skip ASN lines in extended format

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Fix another incorrect variable name
Michael Tremer [Thu, 7 Mar 2024 13:52:01 +0000 (13:52 +0000)] 
importer: Fix another incorrect variable name

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Fix incorrect variable name
Michael Tremer [Thu, 7 Mar 2024 13:49:58 +0000 (13:49 +0000)] 
importer: Fix incorrect variable name

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Use database pipelining when parsing feeds
Michael Tremer [Thu, 7 Mar 2024 12:39:09 +0000 (12:39 +0000)] 
importer: Use database pipelining when parsing feeds

Pipelining should allow us to parse feeds faster since we no longer wait
for a response from the database for each row that we are inserting.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Timeout if fetching a Geofeed takes longer than 5 seconds
Michael Tremer [Thu, 7 Mar 2024 12:24:18 +0000 (12:24 +0000)] 
importer: Timeout if fetching a Geofeed takes longer than 5 seconds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Wrap everything into asyncio
Michael Tremer [Thu, 7 Mar 2024 12:18:14 +0000 (12:18 +0000)] 
importer: Wrap everything into asyncio

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agodatabase: Create a connection pool for async operation
Michael Tremer [Thu, 7 Mar 2024 12:16:30 +0000 (12:16 +0000)] 
database: Create a connection pool for async operation

This is very useful when we want to run multiple tasks concurrently
using asyncio.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Ignore comments in Geofeeds
Michael Tremer [Wed, 6 Mar 2024 23:47:25 +0000 (23:47 +0000)] 
importer: Ignore comments in Geofeeds

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Check imported Geofeed override URLs
Michael Tremer [Wed, 6 Mar 2024 23:22:30 +0000 (23:22 +0000)] 
importer: Check imported Geofeed override URLs

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Add structure to add Geofeed overrides
Michael Tremer [Wed, 6 Mar 2024 23:16:44 +0000 (23:16 +0000)] 
importer: Add structure to add Geofeed overrides

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agotree: Don't check if we need to fill the stack
Michael Tremer [Wed, 6 Mar 2024 22:46:44 +0000 (22:46 +0000)] 
tree: Don't check if we need to fill the stack

If the stack is empty, the for loop won't run and we will straight go to
where we push the network onto the stack.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agotree: Be smarter when removing networks from the stack
Michael Tremer [Wed, 6 Mar 2024 22:45:28 +0000 (22:45 +0000)] 
tree: Be smarter when removing networks from the stack

Since we are working through a sorted tree, we will either only see
subnets of a network or we won't. Once we see a network that isn't a
subnet, we remove the supernet until nothing is left on the stack.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agotree: Fix memory leak in dedup code
Michael Tremer [Wed, 6 Mar 2024 22:44:29 +0000 (22:44 +0000)] 
tree: Fix memory leak in dedup code

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoAdd README.md
Michael Tremer [Mon, 4 Mar 2024 12:39:23 +0000 (12:39 +0000)] 
Add README.md

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoUpdate translations
Michael Tremer [Mon, 4 Mar 2024 12:21:23 +0000 (12:21 +0000)] 
Update translations

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Merge the downloader into our main downloader
Michael Tremer [Mon, 4 Mar 2024 12:20:10 +0000 (12:20 +0000)] 
importer: Merge the downloader into our main downloader

I don't know why we ended up with duplicated code here, but there seems
to be no reason whatsoever for this.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Move the split functions into the main importer
Michael Tremer [Mon, 4 Mar 2024 12:10:37 +0000 (12:10 +0000)] 
importer: Move the split functions into the main importer

This has no functional changes, but moved the functions into a different
file.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agodatabase: Migrate to psycopg3
Michael Tremer [Mon, 4 Mar 2024 12:07:21 +0000 (12:07 +0000)] 
database: Migrate to psycopg3

Fixes: #12953
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: No longer import Geofeeds concurrently
Michael Tremer [Mon, 4 Mar 2024 12:06:33 +0000 (12:06 +0000)] 
importer: No longer import Geofeeds concurrently

This is kind of a problem since many servers have gone away, respond
very slowly, etc. But since we are moving towards psycopg3, we cannot do
this the old way any more.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Drop the geofeed sources when updating RIR data
Michael Tremer [Mon, 4 Mar 2024 11:47:10 +0000 (11:47 +0000)] 
importer: Drop the geofeed sources when updating RIR data

This is a cleaner way to drop any previously imported content and should
also be faster because we can drop a lot of DELETE staments for objects
without Geofeeds.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Create a better structure to import RIRs
Michael Tremer [Mon, 4 Mar 2024 11:42:04 +0000 (11:42 +0000)] 
importer: Create a better structure to import RIRs

All information about all RIRs will now be imported in one large
database transaction per RIR which should bring us better integrity and
help us to phase out any stale data.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Add option to only import specific RIRs
Michael Tremer [Mon, 4 Mar 2024 10:29:38 +0000 (10:29 +0000)] 
importer: Add option to only import specific RIRs

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Also import networks that are smaller than /48 or /24
Michael Tremer [Mon, 4 Mar 2024 10:23:49 +0000 (10:23 +0000)] 
importer: Also import networks that are smaller than /48 or /24

These cannot appear in the global routing table, but that does not mean
that there isn't any value in importing them into our database.

In case they are just noise, we will filter them out later on.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 months agoimporter: Improve checks for unspecified networks
Michael Tremer [Mon, 4 Mar 2024 10:22:22 +0000 (10:22 +0000)] 
importer: Improve checks for unspecified networks

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