On Sunday, 2 January 2022 20:01:47 CET Marek Lindner wrote:
On Sunday, 2 January 2022 15:20:20 CET Sven Eckelmann wrote:
This now causes the "--force" option (+its storage in the globals data structure) to be completely useless.
Why would global->force be useless ? The alfred_server() function still uses the global->force state to determine if globals->mesh_iface is configured correctly.
Ok, you are right about mesh_iface. But the patch missed to adjust the manpage to clarify this.
I would prefer to have this handling still be there when !list_empty(&globals->interfaces).
To be honest, I hadn't fully understood what use case global->force is trying to address. What do you have in mind ? Checking for list_empty() will require alfred to be always started with an interface configured while alfred could be used without any interface at all and operate as local data storage between 2 processes on the same system or the interface could be configured at a later time (via unix socket).
No, I wasn't talking about list_empty() but about !list_empty(). You removed the first block because you want to have have alfred started without any interface - fine with that.
But the default behavior of alfred in the past was to first check if the selected interfaces make sense and then return an error if there was a problem to open them. The force option basically ignored any error when there was an interface not ready yet. But the patch completely removed the chance to pre- check the interfaces on startup.
And why is it necessary to not open the sockets on startup when interfaces are already given?
The main while loop calls netsock_reopen() in each round which will open all necessary sockets (unless I am mistaken). My guess is that this was added when the ALFRED_CHANGE_INTERFACE call was added. Therefore, the netsock_open() call is somewhat redundant unless alfred is meant to always require an interface at startup time and alfred is meant to bail out whenever that configured interface isn't available at startup time.
See above. The situation I had in mind was:
* force not enabled * an interface given to the process * interface cannot be used by alfred
Kind regards, Sven