On 03/28/2016 05:52 PM, Stefan Fritsch wrote:
On Monday 07 March 2016 12:41:25, Jan Kaluža wrote:
This is needed for httpd startup with systemd when one wants to use
particular IP address to bind. There is no way how to start httpd
after the IP address has been configured in systemd and according
to systemd developers, the applications should become more robust
to handle network changes like that. The full reasoning is
explained here [1].

This is wrong. We really want to be able to check the configuration
for correctness at startup. If you switch to using freebind by
default, you loose that sanity check. And using freebind for all
systemd users is basically the same as making it the default.

I do not plan to enable that feature by default. I think 99% of the users use Listen without the particular public IP address, so there is no need to use it for them.

Doesn't network-online.target do what you need? If no, why not?

It does, but it's not what systemd authors describe as a best solution. Also, as Yann said, we might want to use that API even for different socket options in near future.

You are right that from user perspective, it probably doesn't matter if the user enables network-online.target or adds freebind option to httpd - he has to change the configuration of the system anyway. I was just thinking that it would be nice to have a support for that even in httpd.

I am not against the freebind feature as such, it's useful for
failover solutions/VRRP/etc. But I am strictly against advertising
this as a workaround for broken systemd design.

We do not advertise it publicly as a workaround for systemd issues. I was using systemd in my email just to show the use-case I'm personally interested in. In the httpd documentation for this config option in my patch, there is no mention of systemd.

I also personally think that systemd should handle this situation differently, but systemd developers think the opposite for a long time. I was discussing that with them and it's very unlikely that they would change something related to this problem.

Regards,
Jan Kaluza



The patch needs latest APR-trunk currently, but it could be
rewritten to set IP_FREEBIND directly instead of using APR API (We
use that way for REUSEADDR socket option).

Do you think FreeListen is good name for this feature, or would you
name/implement it differently?

[1] https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/


Reply via email to