Re: [mpd-devel] systemd and zeroconf: No global port, disabling zeroconf

2014-12-03 Thread Punky
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

2014-12-02 Thread Punky
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

2014-12-02 Thread Max Kellermann
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