Re: [mpd-devel] systemd and zeroconf: No global port, disabling zeroconf
Thanks Max, Thus, MPD currently does not enable zeroconf when socket activation is used, because MPD does not know what port to announce. I understand this now. systemd would activate the socket on behalf of the service because you told it to. It is optional, and you enabled it (systemctl enable mpd.socket instead of systemctl enable mpd.service). So to make zeroconf works under systemd, I need to systemctl disable mpd.socket then systemctl enable mpd.service and systemctl restart mpd.service. Zeroconf works again. -- -- Regards, Kim-man Punky Tse * Open Source Embedded Solutions and Systems - Voyage Linux (http://linux.voyage.hk) - Voyage MPD (http://linux.voyage.hk/voyage-mpd) - Voyage MuBox (http://mubox.voyage.hk) * Voyage Store (http://store.voyage.hk) ___ mpd-devel mailing list mpd-devel@musicpd.org http://mailman.blarg.de/listinfo/mpd-devel
Re: [mpd-devel] systemd and zeroconf: No global port, disabling zeroconf
Hi Max and all, On Wed, Dec 3, 2014 at 4:39 AM, Max Kellermann m...@duempel.org wrote: listen_systemd_activation() is true. Then the function exit immediately without setting listen_port = port. Correct. Which value do you expect it to have, and where will it obtain that value from? In zeroconf module, listen_port variable is used. listen_port variable should be set to the value that MPD (successfully) listens to, and if TCP port (default 6600) is being configured I don't know much about systemd, and don't understand why systemd would active the socket on behalf of the service (similar to inetd or xinetd!?). But it seems to me listen_port is no longer set when systemd is enabled. The problem here is when listen_port does not set, zeroconf is not enable. I read through the codes on zeroconf module that it publishes the service port using listen_port. To make zeroconf works with systemd again, the argument is: 1. Just a added listen_port=port; after the test of listen_systemd_activation() is true? or 2. change zeroconf module to use port variable to publish the service? (but port being configured does not mean mpd successfully listens to it) It didn't read many mpd codes, so I don't understand the impact after any of the above changes. I am happy to discuss and find a right solution. -- -- Regards, Kim-man Punky Tse * Open Source Embedded Solutions and Systems - Voyage Linux (http://linux.voyage.hk) - Voyage MPD (http://linux.voyage.hk/voyage-mpd) - Voyage MuBox (http://mubox.voyage.hk) * Voyage Store (http://store.voyage.hk) ___ mpd-devel mailing list mpd-devel@musicpd.org http://mailman.blarg.de/listinfo/mpd-devel
Re: [mpd-devel] systemd and zeroconf: No global port, disabling zeroconf
On 2014/12/03 02:56, Punky punky...@gmail.com wrote: In zeroconf module, listen_port variable is used. listen_port variable should be set to the value that MPD (successfully) listens to, and if TCP port (default 6600) is being configured But listen_port is ignored when systemd socket activation is used. With socket activation, listen_port may or may not describe the port that systemd listens to - there is no relation between the two. Thus, MPD currently does not enable zeroconf when socket activation is used, because MPD does not know what port to announce. I don't know much about systemd, and don't understand why systemd would active the socket on behalf of the service (similar to inetd or xinetd!?). systemd would activate the socket on behalf of the service because you told it to. It is optional, and you enabled it (systemctl enable mpd.socket instead of systemctl enable mpd.service). ___ mpd-devel mailing list mpd-devel@musicpd.org http://mailman.blarg.de/listinfo/mpd-devel