fedanet 0.0.35

Thu Dec 25 12:44:26 2025 UTC

UPD (Dec 26, 2025): A quick bugfix is published as the version 0.0.36.

As you might already know, I like beautifully-looking numbers. Today it is 1766666666 seconds since Epoch, which in FEDAnet time (minutes since Epoch) becomes 29444444. Besides that, today is December 25, which is my birthday.

Unfortunately, not too many things there are to publish today, but nevertheless I think it is a good idea to share a snapshot of the source code. It is now available in the download section.

Sources were notably reworked to reduce the size of the feda_rx module. Active peers are now mentioned in the logs with both their ip:port and node_id.point pairs, and also with their names should a name is given in the configuration file. The server, being signaled with SIGUSR1, prints to the logs the list of all established cryptographic associations with the peers. A couple of minor bugs are fixed, as well as protocol flaws, so that reestablishing the association after, e.g., one of the peers got restarted, now works smoothly.

Besides that, the server is now able to create a local socket for a control console, which is enabled with control_socket yes in the configuration file. The (very primitive) program named fedactl connects to the socket and provides some controlling capabilities.

Some new message types are introduced in the protocol, but, unfortunately, it is not yet possible to get any practical use out of them. Sorry, this is the question of the next release.

Thanks everyone who supported the project!


no userpic

From feriman profile Fri Dec 26 19:50:54 2025 UTC

pencil

Segmentation fault in fedaserv

It happens when user calls shutdown command without any parameter in control console. It looks like the bug is here: fsrv_con.c:203. Missing check for argv[1] existence.

admin.jpg's userpic

From Andrey Stolyarov profile Fri Dec 26 22:15:12 2025 UTC in reply to this comment

pencil

Re: Segmentation fault in fedaserv

Yeah, you're right. Thanks.

no userpic

From feriman profile Thu Dec 25 23:20:10 2025 UTC

pencil

Segmentation fault on SIGKILL or SIGTERM

I did not debug or test it yet, but I'm almost sure that it happens because of NULL pointer dereference in destroy_control_console(ctlsock) function due to missing condition in the fedaserv.c:312

P.S. Happy birthday!

admin.jpg's userpic

From Andrey Stolyarov profile Fri Dec 26 10:40:27 2025 UTC in reply to this comment

pencil

Re: Segmentation fault on SIGKILL or SIGTERM

Thanks!

Well, please note no program in the world cat ever segfault (or do anything else) on SIGKILL because its disposition can't be changed and it simply kills. As of the SIGTERM signal, I noticed I actually forgot to register the handler for it, which is a bug, yes, but it doesn't manifestate that way.

However, yes, I forgot to check the console object really exists before destroying it, you're absolutely right. So if the server is launched without the console (that is, there's no ``control_socket yes'' line in the config), it segfaults, e.g., on SIGINT (that is, Ctrl-C). Thanks again! I'll publish the fixed version.

no userpic

From feriman profile Fri Dec 26 12:36:40 2025 UTC in reply to this comment

pencil

Re: Re: Segmentation fault on SIGKILL or SIGTERM

My mistake, sorry. Of course the right signals are SIGINT (Ctrl+C) and SIGQUIT (Ctrl+\). Thanks for correction.

anonymous

From Anonymous (unverified) Thu Dec 25 13:10:39 2025 UTC

pencil

typo

> it is not yet possible to get any practical ue out of them.

admin.jpg's userpic

From Andrey Stolyarov profile Thu Dec 25 13:16:53 2025 UTC in reply to this comment

pencil

Re: typo

thanks