]> git.ipfire.org Git - thirdparty/FORT-validator.git/log
thirdparty/FORT-validator.git
3 days agoUpdate debian metadata (Fort 1.7.0.experimental) debian
Alberto Leiva Popper [Thu, 16 Jul 2026 01:54:18 +0000 (19:54 -0600)] 
Update debian metadata (Fort 1.7.0.experimental)

3 days agoMerge branch 'main' into debian
Alberto Leiva Popper [Thu, 16 Jul 2026 01:53:06 +0000 (19:53 -0600)] 
Merge branch 'main' into debian

3 days agoProtocolary updates for release 1.7.0.experimental main 1.7.0.experimental
Alberto Leiva Popper [Thu, 16 Jul 2026 01:50:19 +0000 (19:50 -0600)] 
Protocolary updates for release 1.7.0.experimental

3 days agoGlue code for OpenSSL 1.1.1f
Alberto Leiva Popper [Wed, 15 Jul 2026 23:00:04 +0000 (17:00 -0600)] 
Glue code for OpenSSL 1.1.1f

I need this for an old testing machine.

I guess 1.1.1f is supported for now. :shrug:

4 days agoReview of #includes
Alberto Leiva Popper [Tue, 14 Jul 2026 21:42:49 +0000 (15:42 -0600)] 
Review of #includes

4 days agoMerge branch 'main' into aspa
Alberto Leiva Popper [Tue, 14 Jul 2026 21:32:59 +0000 (15:32 -0600)] 
Merge branch 'main' into aspa

4 days agoImprove OpenSSL 4 glue code
Alberto Leiva Popper [Tue, 14 Jul 2026 19:27:00 +0000 (13:27 -0600)] 
Improve OpenSSL 4 glue code

crypto/asn1.h is internal; I'm not supposed to `#include` it.

Also fixes some inoffensive warnings.

9 days agoAdd --server.max-rtr-version
Alberto Leiva Popper [Fri, 10 Jul 2026 00:19:50 +0000 (18:19 -0600)] 
Add --server.max-rtr-version

Caps the maximum RTR version the server will be willing to serve.

Defaults to 0 because the RTRv1 implementation still doesn't do
anything useful, and the RTRv2 implementation is transient.
(They're still tweaking the RTRv2 spec.)

Also fixes a couple of bugs:

- Was not closing the connection when returning internal error PDUs
- Some error reports before the version validation would erroneously
  indicate v255 in the header

9 days agoUpdate unit tests
Alberto Leiva Popper [Thu, 9 Jul 2026 19:53:55 +0000 (13:53 -0600)] 
Update unit tests

10 days agoMove PDU parsing to RTR server threads
Alberto Leiva Popper [Wed, 8 Jul 2026 22:49:04 +0000 (16:49 -0600)] 
Move PDU parsing to RTR server threads

PDU parsing has been done by the poller up to this point.
I probably intended this to encapsulate all the stream operations in
the poller.

During 4e0f81dd5405f8c6c48d2e74c0468d16b44f9a50, the poller's block of
code that contained PDU parsing had to be moved to the mutex time.
This created a substantial incentive to migrate PDU parsing out of the
poller.

So now it's done by the RTR server threads instead.

10 days agoTurn rtr_stream pollin, claimed and eos into flags
Alberto Leiva Popper [Wed, 8 Jul 2026 16:55:18 +0000 (10:55 -0600)] 
Turn rtr_stream pollin, claimed and eos into flags

pollin is new.

11 days agoClear RTR client request queue on error
Alberto Leiva Popper [Tue, 7 Jul 2026 23:15:45 +0000 (17:15 -0600)] 
Clear RTR client request queue on error

If Fort decides to abandon a client because of misbehavior, it will
finish handling the current request (if there is one), cancel all
subsequent queued requests, and terminate the connection.

11 days agoMove print_poll_failure()s to fddb_poll()
Alberto Leiva Popper [Tue, 7 Jul 2026 23:01:16 +0000 (17:01 -0600)] 
Move print_poll_failure()s to fddb_poll()

They need to be closer to the poll(), otherwise they might print
nonsense.

11 days agoCache the client request queue size
Alberto Leiva Popper [Tue, 7 Jul 2026 22:53:22 +0000 (16:53 -0600)] 
Cache the client request queue size

12 days agoRestore RTR request session vs negotiated session check
Alberto Leiva Popper [Mon, 6 Jul 2026 22:16:01 +0000 (16:16 -0600)] 
Restore RTR request session vs negotiated session check

But less convoluted, now that single-threads per client are implemented.

More or less reverts 47deaf18a716596f0c3730aadd2659239f8fe7bc.

Fixes Rapport 8210bis/5.1-2.10-serial-query-with-incorrect-session-id.

12 days agoEnforce each RTR client is handled by one thread at a time
Alberto Leiva Popper [Mon, 6 Jul 2026 19:40:18 +0000 (13:40 -0600)] 
Enforce each RTR client is handled by one thread at a time

Do not spread simultaneous requests randomdly through threads.
Allows handlers to be stateful without having to deal with mutexes.

2 weeks agoAdd support for OpenSSL 4
Alberto Leiva Popper [Thu, 2 Jul 2026 18:46:43 +0000 (12:46 -0600)] 
Add support for OpenSSL 4

Previous maximum OpenSSL was 3.

F1xes #183.

3 weeks agoRTR: Reject serial ^ 0x80000000
Alberto Leiva Popper [Tue, 23 Jun 2026 16:56:35 +0000 (10:56 -0600)] 
RTR: Reject serial ^ 0x80000000

Eg. if the cache has serial 0x01, and the router requests serial
0x80000001.

0x80000001 was bypassing the sanitizations because, in accordance with
32-bit serial number arithmetic, it's neither greater nor less than
0x01.

This was resulting in Fort returning Cache Response instead of Cache
Reset.

Thanks to 王鑫 for reporting this.

Fixes GHSA-4q3q-6gww-wc52.

3 weeks agoAdd custom SIGTERM handler
Alberto Leiva Popper [Fri, 1 May 2026 23:31:04 +0000 (17:31 -0600)] 
Add custom SIGTERM handler

Allows clean termination when killed via SIGTERM.

It's a temporal hack; not safe because of the multithreading.
It's meant to be enabled during the controlled environment of Rapport
tests, and nowhere else.
Compile with -DOVERRIDE_SIGTERM to enable.

3 weeks agoFire up validation when SIGUSR1 is received while sleeping
Alberto Leiva Popper [Tue, 17 Mar 2026 21:34:24 +0000 (18:34 -0300)] 
Fire up validation when SIGUSR1 is received while sleeping

Tentatively fixes #42, except it applies on SIGUSR1, not SIGHUP.
I don't understand the logic of using SIGHUP for this.

5 weeks agoRecognize and print error reports 9, 10 and 11
Alberto Leiva Popper [Mon, 8 Jun 2026 21:14:16 +0000 (15:14 -0600)] 
Recognize and print error reports 9, 10 and 11

Fixes #182.

5 weeks agoPrint CAS on provider list too long
Alberto Leiva Popper [Mon, 8 Jun 2026 15:39:01 +0000 (09:39 -0600)] 
Print CAS on provider list too long

Was missing the SHOULD:

> Relying Party implementations are RECOMMENDED to impose an upper
> bound on the number of Provider ASes for a given CAS.
> (...) an error SHOULD be logged in the
> local system, indicating the CAS for which the threshold was
> exceeded.

6 weeks agoApply PDU ordering from 8210bis-25#section-11.2
Alberto Leiva Popper [Fri, 5 Jun 2026 00:14:56 +0000 (18:14 -0600)] 
Apply PDU ordering from 8210bis-25#section-11.2

7 weeks agoUpdate debian metadata (Fort 1.6.8)
Alberto Leiva Popper [Sat, 30 May 2026 21:50:19 +0000 (15:50 -0600)] 
Update debian metadata (Fort 1.6.8)

7 weeks agoMerge branch 'main' into debian
Alberto Leiva Popper [Fri, 29 May 2026 21:19:52 +0000 (15:19 -0600)] 
Merge branch 'main' into debian

7 weeks agoProtocolary updates for release 1.6.8 1.6.8
Alberto Leiva Popper [Fri, 29 May 2026 21:08:32 +0000 (15:08 -0600)] 
Protocolary updates for release 1.6.8

7 weeks agoReview of #includes
Alberto Leiva Popper [Fri, 29 May 2026 14:53:34 +0000 (08:53 -0600)] 
Review of #includes

7 weeks agoUpdate unit tests
Alberto Leiva Popper [Fri, 29 May 2026 13:52:23 +0000 (07:52 -0600)] 
Update unit tests

7 weeks agoMerge branch 'GHSA-qfm3-577x-rh54'
Alberto Leiva Popper [Fri, 29 May 2026 13:46:29 +0000 (07:46 -0600)] 
Merge branch 'GHSA-qfm3-577x-rh54'

7 weeks agoParrot a different session number for each RTR version
Alberto Leiva Popper [Fri, 29 May 2026 01:07:01 +0000 (19:07 -0600)] 
Parrot a different session number for each RTR version

I'd forgotten this requirement from 8210bis:

> To reduce the risk of confusion,
> cache servers SHOULD NOT use the same Session ID across multiple
> protocol versions

7 weeks agoUpdate unit tests
Alberto Leiva Popper [Fri, 29 May 2026 01:02:52 +0000 (19:02 -0600)] 
Update unit tests

7 weeks agoRemove RTR request session vs negotiated session check
Alberto Leiva Popper [Thu, 28 May 2026 18:53:55 +0000 (12:53 -0600)] 
Remove RTR request session vs negotiated session check

I complained about this on sidrops:
https://mailarchive.ietf.org/arch/msg/sidrops/IqvFzvZcSkBN_9gQAwUKAJtIRko/

The hack was too horrid, so I decided to remove it, at least for this
release.

The request session is now only compared to the cache session.
Fort does not care whether the client sustains a constant session.
As long as it's a valid cached session, it's fine. It can ask for many
sessions if it wants.

In practice, all this means is the Corrupt Data is switched for a
Cache Reset.

Whatever. The client will be none the wiser, and the end result will be
the same (a new Cache Request).

7 weeks agoDelete old RTR serials over time
Alberto Leiva Popper [Thu, 28 May 2026 18:31:15 +0000 (12:31 -0600)] 
Delete old RTR serials over time

Was missing from the previous refactor.

8 weeks agoRe-engineer the RTR PDU handlers
Alberto Leiva Popper [Sat, 23 May 2026 04:30:24 +0000 (22:30 -0600)] 
Re-engineer the RTR PDU handlers

The old algorithm was ill-advised.

It used to be caching incremental deltas between RTR serials.
Then, because the only thing that matters in the end is the net delta
between the router's serial and the latest, it was building up the net
delta from the incremental ones.

The complexity was O(n^2), where n is the total VRPs + RKs + ASPAs
across all involved incremental deltas. Under normal load, n seems to
tend to be small. But that's asking for trouble. Also, the algorithm
also had to allocate n objects, which is rather excessive for a Serial
Query handler.

There was also the issue that all the RTR data was cached in RAM,
which means the RTR session had to change every time Fort was
restarted. And this memory usage wasn't terribly insignificant.

And also, computing a net delta from incremental ASPAs is awkward.
Because ASPAs that share customerAS are supposed to override each other,
they cancel out differently from VRPs.

So I ended up rewriting the entire RTR session caching code.
The Serial Query handler now computes net deltas from RTR snapshots.
The snapshots are stored in the cache, not RAM.

Complexity is O(m), where m is the total VRPs + RKs + ASPAs of the two
relevant snapshots. So m tends to be large, but it degrades much
healthier. The handler also allocates very little memory.

Fixes #70. Fixes #176.

2 months agoExclude hidden files and directories when synchronizing via Rsync 175/head
Job Snijders [Sat, 16 May 2026 14:41:47 +0000 (14:41 +0000)] 
Exclude hidden files and directories when synchronizing via Rsync

According to RFC 9286 section 4.2.2, filenames in the RPKI cannot start
with a dot. And RFC 6481 section 1.1 describes the concept of a publication
point as a "directory in a publicly accessible filesystem". From there it
follows there is no need to transfer hidden files and directories. This may
help in avoiding exposure to intermediate states (e.g., /a/.~tmp~/b.roa).

2 months agoUpdate unit tests
Alberto Leiva Popper [Fri, 15 May 2026 23:47:36 +0000 (17:47 -0600)] 
Update unit tests

2 months agoPatch memory leaks
Alberto Leiva Popper [Mon, 4 May 2026 23:43:49 +0000 (17:43 -0600)] 
Patch memory leaks

2 months agoPatch memory leaks
Alberto Leiva Popper [Fri, 1 May 2026 23:32:43 +0000 (17:32 -0600)] 
Patch memory leaks

2 months agoAdd custom SIGTERM handler
Alberto Leiva Popper [Fri, 1 May 2026 23:31:04 +0000 (17:31 -0600)] 
Add custom SIGTERM handler

Allows clean termination when killed via SIGTERM.

It's a temporal hack; not safe because of the multithreading.
It's meant to be enabled during the controlled environment of Rapport
tests, and nowhere else.
Compile with -DOVERRIDE_SIGTERM to enable.

2 months agoRefuse cross-origin RRDP
Alberto Leiva Popper [Tue, 28 Apr 2026 23:37:01 +0000 (17:37 -0600)] 
Refuse cross-origin RRDP

RFC 9674. This code was mostly copied from Fort 2's current
pseudo-alpha.

2 months agoDo not delete RPP files if snapshot is already exploded
Alberto Leiva Popper [Mon, 27 Apr 2026 21:37:47 +0000 (15:37 -0600)] 
Do not delete RPP files if snapshot is already exploded

There are situations in which the code might find itself attempting
to explode a snapshot a second time during a validation run.

The code was noticing this, and thus skipping the second download.
But by then, the cached files were already deleted. Which resulted
in the validation code receiving zero files as input.

3 months agoReimplement RTR version validation
Alberto Leiva Popper [Mon, 23 Mar 2026 22:26:49 +0000 (16:26 -0600)] 
Reimplement RTR version validation

Fixes #171.

3 months agoPatch ASPA aggregation during serial queries
Alberto Leiva Popper [Mon, 23 Mar 2026 21:51:10 +0000 (15:51 -0600)] 
Patch ASPA aggregation during serial queries

On collision, The RTR server was announcing the old ASPA,
not the new one.

Fixes #170.

3 months agoReject ASPA customerASID 0
Alberto Leiva Popper [Fri, 20 Mar 2026 18:49:23 +0000 (15:49 -0300)] 
Reject ASPA customerASID 0

Fixes #169.

3 months agoReject more than one AS in ASPA EEs
Alberto Leiva Popper [Fri, 20 Mar 2026 18:49:18 +0000 (15:49 -0300)] 
Reject more than one AS in ASPA EEs

Fixes #168.

4 months agoFire up validation when SIGUSR1 is received while sleeping
Alberto Leiva Popper [Tue, 17 Mar 2026 21:34:24 +0000 (18:34 -0300)] 
Fire up validation when SIGUSR1 is received while sleeping

Tentatively fixes #42, except it applies on SIGUSR1, not SIGHUP.
I don't understand the logic of using SIGHUP for this.

4 months agoFix bad print
Alberto Leiva Popper [Thu, 12 Mar 2026 16:21:48 +0000 (10:21 -0600)] 
Fix bad print

4 months agoReject providers list if AS0 is listed along other ASs
Alberto Leiva Popper [Wed, 11 Mar 2026 17:37:18 +0000 (11:37 -0600)] 
Reject providers list if AS0 is listed along other ASs

Fixes #167.

4 months agoAdd separate validation for duplicate ASPA providers
Alberto Leiva Popper [Fri, 6 Mar 2026 18:52:27 +0000 (12:52 -0600)] 
Add separate validation for duplicate ASPA providers

Fixes #166.

4 months agoDo not prohibit inherit in all Signed Objects
Alberto Leiva Popper [Thu, 19 Feb 2026 16:26:52 +0000 (10:26 -0600)] 
Do not prohibit inherit in all Signed Objects

Only prohibit IP inherit in ROAs and AS inherit in ASPAs.
Also, improve error message.

Fixes #165.

4 months agoImplement ASPA
Alberto Leiva Popper [Fri, 23 Jan 2026 21:49:18 +0000 (15:49 -0600)] 
Implement ASPA

5 months agoImprove NID API usage
Alberto Leiva Popper [Fri, 30 Jan 2026 22:29:58 +0000 (16:29 -0600)] 
Improve NID API usage

The code was seemingly assuming that NID_undef == 0.

5 months agoReject negative certificate serial numbers
Alberto Leiva Popper [Mon, 19 Jan 2026 19:08:30 +0000 (13:08 -0600)] 
Reject negative certificate serial numbers

Thanks to 雷东政 for reporting this.

9 months agoUpdate Docker
Alberto Leiva Popper [Tue, 23 Sep 2025 18:04:23 +0000 (12:04 -0600)] 
Update Docker

10 months agoDocumentation: Installation recipes review
Alberto Leiva Popper [Wed, 17 Sep 2025 17:28:59 +0000 (11:28 -0600)] 
Documentation: Installation recipes review

I removed a bunch, because I need a better framework to keep them up to date.
But I need to postpone that work until after Fort 2.

But also, this doesn't even feel like the right place to document packages
not maintained by LACNIC... but that's #130's scope.

At least one package (Gentoo) seems abandoned, as well.

10 months agoProtocolary updates for release 1.6.7
Alberto Leiva Popper [Tue, 16 Sep 2025 19:59:33 +0000 (13:59 -0600)] 
Protocolary updates for release 1.6.7

10 months agoMerge branch 'main' into debian
Alberto Leiva Popper [Tue, 16 Sep 2025 17:19:11 +0000 (11:19 -0600)] 
Merge branch 'main' into debian

10 months agoProtocolary updates for release 1.6.7 1.6.7
Alberto Leiva Popper [Fri, 12 Sep 2025 18:39:11 +0000 (12:39 -0600)] 
Protocolary updates for release 1.6.7

10 months agoAdd proxy and Prometheus to documentation
Alberto Leiva Popper [Fri, 12 Sep 2025 18:38:31 +0000 (12:38 -0600)] 
Add proxy and Prometheus to documentation

10 months agoAdd gauge to track RTR readyness
Alberto Leiva Popper [Thu, 11 Sep 2025 23:45:57 +0000 (17:45 -0600)] 
Add gauge to track RTR readyness

Starts as 0, becomes 1 when the VRP database has been populated.

Intended to replace the awkward log msg at least one user tracks:

> First validation cycle successfully ended,
> now you can connect your router(s)

For #133.

10 months agoReview of #includes
Alberto Leiva Popper [Thu, 11 Sep 2025 23:07:13 +0000 (17:07 -0600)] 
Review of #includes

10 months agoMerge branch 'issue160'
Alberto Leiva Popper [Thu, 11 Sep 2025 22:11:48 +0000 (16:11 -0600)] 
Merge branch 'issue160'

10 months agoAllow server.port to be an integer in JSON
Alberto Leiva Popper [Fri, 29 Aug 2025 18:16:04 +0000 (12:16 -0600)] 
Allow server.port to be an integer in JSON

The old string parser still works too.

For #50.

11 months agoPrometheus: Allow plaintext Content-Type
Alberto Leiva Popper [Fri, 8 Aug 2025 17:15:32 +0000 (11:15 -0600)] 
Prometheus: Allow plaintext Content-Type

In general, the openmetrics Content-Type is preferred. The code makes
an exception out of browsers, however.

The full logic is

- If the request has no Accept header, Content-Type will be openmetrics
  1.0.0.

- If the Accept header expects neither openmetrics nor plaintext,
  Content-Type will be plaintext 0.0.4.

This is because the client is usually a browser (which seem to typically
lack Openmetrics handlers) or a generic HTTP client like curl (which
don't really care about Content-Type).

- Otherwise Fort will decide between openmetrics 1.0.0 or plaintext
  0.0.4, depending on q-values. (Requested version will be ignored,
  because only one is supported for each.) If their q is the same,
  openmetrics will be preferred.

For #50.

11 months agoFix libmicrohttpd <= 0.9.60 API usage
Alberto Leiva Popper [Thu, 7 Aug 2025 18:12:43 +0000 (12:12 -0600)] 
Fix libmicrohttpd <= 0.9.60 API usage

Should now work for libmicrohttpd 0.9.16 to 1.0.2.

For #50.

11 months agoFix libmicrohttpd <= 0.9.70 API usage
Alberto Leiva Popper [Wed, 6 Aug 2025 17:19:48 +0000 (11:19 -0600)] 
Fix libmicrohttpd <= 0.9.70 API usage

Should now work for libmicrohttpd 0.9.61 to 1.0.2.

For #50.

11 months agoImplement Prometheus
Alberto Leiva Popper [Wed, 6 Aug 2025 00:42:34 +0000 (18:42 -0600)] 
Implement Prometheus

Fixes #50.

For now, it only implements the following stats:

fort_valid_vrps_total{ta="<TA>",proto="ipv<IP>"}
Total VRPs generated from TA <TA> (and the given
protocol) during the previous cycle.
"<TA>" is inferred from the TAL's file name.

fort_rtr_current_connections
Number of active RTR clients.

To activate the server, set --mode=server and --prometheus.port to an
allowed and available port number.

Adds libmicrohttpd as a dependency.

13 months agoDoc: Add installation steps for Rocky 9
Alberto Leiva Popper [Fri, 30 May 2025 20:17:07 +0000 (14:17 -0600)] 
Doc: Add installation steps for Rocky 9

14 months agoAdd --http.proxy issue160
Alberto Leiva Popper [Fri, 16 May 2025 16:52:20 +0000 (10:52 -0600)] 
Add --http.proxy

Attempt to fix #160.

14 months agoAdd character check in certificate subjects and issuers
Alberto Leiva Popper [Wed, 14 May 2025 19:25:50 +0000 (13:25 -0600)] 
Add character check in certificate subjects and issuers

Fixes #159.

17 months agoUpdate debian metadata (Fort 1.6.6)
Alberto Leiva Popper [Wed, 5 Feb 2025 22:36:43 +0000 (16:36 -0600)] 
Update debian metadata (Fort 1.6.6)

17 months agoMerge branch 'main' into debian
Alberto Leiva Popper [Wed, 5 Feb 2025 22:31:50 +0000 (16:31 -0600)] 
Merge branch 'main' into debian

17 months agoProtocolary updates for release 1.6.6 1.6.6
Alberto Leiva Popper [Wed, 5 Feb 2025 22:29:48 +0000 (16:29 -0600)] 
Protocolary updates for release 1.6.6

17 months agoIncrease http.max-file-size's default
Alberto Leiva Popper [Wed, 5 Feb 2025 19:14:42 +0000 (13:14 -0600)] 
Increase http.max-file-size's default

We got a 530 mB snapshot nowadays. Since these tend to double during
key rollover, the old default of 1 gB no longer makes sense.

17 months agoRRDP: Mirror rsync extension filters
Alberto Leiva Popper [Wed, 22 Jan 2025 23:26:39 +0000 (17:26 -0600)] 
RRDP: Mirror rsync extension filters

We've agreed extension filters are useful, and the manifest code no
longer drops RPPs due to unknown file-not-founds.

So prevent unknown file extensions from contaminating the RRDP side of
the cache as well.

Complements #155.

17 months agoStop rejecting RPPs if unrecognizable absent files are fileListed
Alberto Leiva Popper [Wed, 22 Jan 2025 22:38:37 +0000 (16:38 -0600)] 
Stop rejecting RPPs if unrecognizable absent files are fileListed

RFC 9286:

> The RP MUST acquire all of the files enumerated in the manifest
> (fileList) from the publication point. If there are files listed in
> the manifest that cannot be retrieved from the publication point,
> the RP MUST treat this as a failed fetch.

This was clashing with Fort's default rsync filters because they were
preventing unknown extensions from being downloaded:

> rsync (...) --include=*.cer --include=*.crl --include=*.gbr \
> --include=*.mft --include=*.roa --exclude=* (...)

Which will be a problem whenever the IETF defines new legal repository
extensions, such as .asa.

Therefore, ignore unknown manifest fileList extensions. This technically
violates RFC 9286, but it's necessary evil given that we can't trust
repositories to always only serve proper RPKI content.

Fixes #155.

18 months agoName CVE-2024-56375
Alberto Leiva Popper [Thu, 2 Jan 2025 22:42:17 +0000 (16:42 -0600)] 
Name CVE-2024-56375

18 months agoAdd new CVE sketch
Alberto Leiva Popper [Fri, 20 Dec 2024 22:12:21 +0000 (16:12 -0600)] 
Add new CVE sketch

18 months agoUpdate debian metadata (Fort 1.6.5)
Alberto Leiva Popper [Wed, 18 Dec 2024 23:29:32 +0000 (17:29 -0600)] 
Update debian metadata (Fort 1.6.5)

18 months agoMerge branch 'main' into debian
Alberto Leiva Popper [Wed, 18 Dec 2024 23:11:20 +0000 (17:11 -0600)] 
Merge branch 'main' into debian

18 months agoProtocolary updates for release 1.6.5 1.6.5
Alberto Leiva Popper [Wed, 18 Dec 2024 22:57:58 +0000 (16:57 -0600)] 
Protocolary updates for release 1.6.5

18 months agoCheck manifest fileList emptiness before shuffling
Alberto Leiva Popper [Wed, 18 Dec 2024 21:58:54 +0000 (15:58 -0600)] 
Check manifest fileList emptiness before shuffling

Prevents the loop iterating indefinitely trying to shuffle an array
that's not actually there.

Fixes #154 and new CVE.

18 months agoName CVE-2024-56169 and CVE-2024-56170
Alberto Leiva Popper [Wed, 18 Dec 2024 18:57:46 +0000 (12:57 -0600)] 
Name CVE-2024-56169 and CVE-2024-56170

19 months agoAdd new CVE sketches
Alberto Leiva Popper [Tue, 26 Nov 2024 23:58:19 +0000 (17:58 -0600)] 
Add new CVE sketches

21 months agoName CVE-2024-48943
Alberto Leiva Popper [Mon, 14 Oct 2024 17:32:22 +0000 (11:32 -0600)] 
Name CVE-2024-48943

21 months agoEnclose each test sandbox in a dedicated directory
Alberto Leiva Popper [Mon, 30 Sep 2024 18:06:17 +0000 (12:06 -0600)] 
Enclose each test sandbox in a dedicated directory

Prevents them from interfering with each other.

Fixes #148.

21 months agoUpdate Docker
Alberto Leiva Popper [Tue, 24 Sep 2024 16:51:02 +0000 (10:51 -0600)] 
Update Docker

21 months agoAdd 1.6.4 CVE
Alberto Leiva Popper [Tue, 24 Sep 2024 00:19:58 +0000 (18:19 -0600)] 
Add 1.6.4 CVE

21 months agoUpdate debian metadata (Fort 1.6.4)
Alberto Leiva Popper [Mon, 23 Sep 2024 19:50:45 +0000 (13:50 -0600)] 
Update debian metadata (Fort 1.6.4)

21 months agoMerge branch 'main' into debian
Alberto Leiva Popper [Mon, 23 Sep 2024 19:36:19 +0000 (13:36 -0600)] 
Merge branch 'main' into debian

21 months agoProtocolary updates for release 1.6.4 1.6.4
Alberto Leiva Popper [Mon, 23 Sep 2024 19:34:19 +0000 (13:34 -0600)] 
Protocolary updates for release 1.6.4

22 months agoMisc log review
Alberto Leiva Popper [Thu, 5 Sep 2024 20:39:11 +0000 (14:39 -0600)] 
Misc log review

- Print dependency versions during startup
- Print date ranges for certificates and CRLs

22 months agoFix default values in the documentation
Alberto Leiva Popper [Tue, 3 Sep 2024 22:22:29 +0000 (16:22 -0600)] 
Fix default values in the documentation

The retry counts and intervals were wrong.

22 months agoMerge branch 'job-rsync_timeout_poll'
Alberto Leiva Popper [Tue, 3 Sep 2024 21:45:50 +0000 (15:45 -0600)] 
Merge branch 'job-rsync_timeout_poll'

22 months agoAdd more unit tests to the rsync timeout
Alberto Leiva Popper [Tue, 3 Sep 2024 20:25:41 +0000 (14:25 -0600)] 
Add more unit tests to the rsync timeout

Aight, think I'm done testing this.

22 months agoExhaust rsync's stderr and stdout at the same time
Alberto Leiva Popper [Fri, 30 Aug 2024 02:48:54 +0000 (20:48 -0600)] 
Exhaust rsync's stderr and stdout at the same time

I'm assuming this consumes less RAM, as stdout no longer has to buffer
completely until stderr is done.

22 months agoRefactor exhaust_read_fd()'s return value
Alberto Leiva Popper [Thu, 29 Aug 2024 22:49:55 +0000 (16:49 -0600)] 
Refactor exhaust_read_fd()'s return value

Allows the unit test to tell the difference between timeout and error.

22 months agoSeparate POLLERR and POLLNVAL for rsync poll
Alberto Leiva Popper [Thu, 29 Aug 2024 22:33:40 +0000 (16:33 -0600)] 
Separate POLLERR and POLLNVAL for rsync poll

POLLERR must induce close(), POLLNVAL must not.

22 months agoRename the exhaust stream functions, simplify arg list
Alberto Leiva Popper [Thu, 29 Aug 2024 22:27:23 +0000 (16:27 -0600)] 
Rename the exhaust stream functions, simplify arg list

22 months agoUpdate timeout during every rsync poll
Alberto Leiva Popper [Thu, 29 Aug 2024 21:19:02 +0000 (15:19 -0600)] 
Update timeout during every rsync poll

Ensures the timeout is absolute even when poll() returns repeatedly.