GNOME Bugzilla – Bug 767305
Documentation for "interface" flag is bad
Last modified: 2016-06-26 15:03:43 UTC
gupnp-0.20.17-1.fc25.x86_64 gupnp-av-0.12.8-1.fc24.x86_64 gupnp-dlna-0.10.4-1.fc24.x86_64 gupnp-igd-0.2.3-6.fc24.x86_64 gupnp-tools-0.8.12-1.fc25.x86_64 rygel-0.31.1-1.fc25.x86_64 tumbler-0.1.31-3.fc24.x86_64 # systemctl status rygel.service ● rygel.service - Rygel DLNA server Loaded: loaded (/etc/systemd/system/rygel.service; enabled; vendor preset: disabled) Active: active (running) since lun. 2016-06-06 20:48:47 CEST; 2min 3s ago Main PID: 808 (rygel) Tasks: 3 (limit: 512) CGroup: /system.slice/rygel.service └─808 /usr/bin/rygel -c /etc/rygel-server.conf juin 06 20:48:47 arekh.localdomain systemd[1]: Started Rygel DLNA server. juin 06 20:48:48 arekh.localdomain rygel[808]: Rygel-Message: rygel-acl.vala:143: Pas de procédure de repli ACL trouvée. Utilisation de juin 06 20:48:48 arekh.localdomain rygel[808]: Rygel-Message: Démarrage de Rygel v0.31.1… juin 06 20:48:48 arekh.localdomain rygel[808]: (rygel:808): Rygel-CRITICAL **: rygel_acl_on_name_vanished: assertion 'connection != NULL juin 06 20:48:48 arekh.localdomain rygel[808]: RygelCore-Message: Nouveau greffon « Playbin » disponible juin 06 20:48:48 arekh.localdomain rygel[808]: RygelCore-Message: Nouveau greffon « MediaExport » disponible # lsof -i |grep rygel rygel 808 rygel 10u IPv4 21603 0t0 UDP localhost:ssdp rygel 808 rygel 11u IPv4 21604 0t0 UDP 239.255.255.250:ssdp rygel 808 rygel 12u IPv4 21606 0t0 UDP localhost:50001 rygel 808 rygel 13u IPv4 21607 0t0 TCP localhost:50001 (LISTEN) rygel 808 rygel 15u IPv4 21609 0t0 UDP arekh.okg:ssdp rygel 808 rygel 16u IPv4 21610 0t0 UDP 239.255.255.250:ssdp rygel 808 rygel 17u IPv4 21612 0t0 UDP arekh.okg:50001 rygel 808 rygel 18u IPv4 21613 0t0 TCP arekh.okg:50001 (LISTEN) # gssdp-discover (on the same host, so no firewall problem) → picks up 3 appliances on the local network, but not the local server Just to be sure: # gssdp-discover -i lo Using network interface lo Scanning for all resources Showing "available" messages → nothing # diff -u /etc/rygel.conf /etc/rygel-server.conf (/etc/rygel.conf as shipped in the Fedora package) --- /etc/rygel.conf 2016-05-23 22:19:02.000000000 +0200 +++ /etc/rygel-server.conf 2016-06-06 01:35:37.749582346 +0200 @@ -29,10 +29,10 @@ # List of network interfaces to attach rygel to. You can also use network IP or # even ESSID for wireless networks on Linux. Leave it blank for dynamic # configuration. -interface= +interface=192.168.0.4 # The port to run HTTP server on. 0 means dynamic. -port=0 +port=50001 # Comma-separated list of domain:level pairs to specify log level thresholds for # individual domains. domain could be either 'rygel', name of a plugin or '*' @@ -43,7 +43,7 @@ # 3=warning # 4=message/info # 5=debug -log-level=*:4 +log-level=*:5 # Allow upload of media files? allow-upload=false @@ -91,21 +91,21 @@ image-timeout = 15 [Tracker] -enabled=true -only-export-from=@MUSIC@;@VIDEOS@;@PICTURES@ -share-pictures=true -share-videos=true +enabled=false +only-export-from=@MUSIC@;@VIDEOS@;@PICTURES@;/srv/music +share-pictures=false +share-videos=false share-music=true strict-sharing=false -title=@REALNAME@'s media on @PRETTY_HOSTNAME@ +title=Arekh media [LMS] enabled=false -title=@REALNAME@'s media on @PRETTY_HOSTNAME@ +title=Arekh media [MediaExport] enabled=true -title=@REALNAME@'s media on @PRETTY_HOSTNAME@ +title=Arekh media # List of URIs to export. Following variables are automatically substituted by # the appropriate XDG standard media folders by Rygel for you. # @@ -113,7 +113,7 @@ # * @VIDEOS@: The standard videos folder (typically ${HOME}/Videos). # * @PICTURES@: The standard pictures folder (typically ${HOME}/Pictures). # -uris=@MUSIC@;@VIDEOS@;@PICTURES@ +uris=@MUSIC@;@VIDEOS@;@PICTURES@;/srv/music extract-metadata=true monitor-changes=true monitor-grace-timeout=5 @@ -121,7 +121,7 @@ [Playbin] enabled=true -title=Audio/Video playback on @PRETTY_HOSTNAME@ +title=Audio/Video playback on Arekh [GstLaunch] enabled=false @@ -159,4 +159,4 @@ [Ruih] enabled=false -title=Rygel Remote UI Server +title=Arekh Remote UI Server Both /srv/music and /var/lib/rygel/Music are populated and readable by rygel
Did you poke holes in the firewall? Strictly speaking that's not a Rygel issue. I might be repeating myself, but if you're running DLNA in an environment where you feel the need for a firewall, you shouldn't run DLNA in the first place.
sorry, missed the "not" in your sentence. Which version of gssdp is that?
How is that supposed to work: You set +interface=192.168.0.4 And then expect something on an interface that is not 192.168.0.4? # gssdp-discover -i lo Using network interface lo Scanning for all resources Showing "available" messages → nothing But then again I see "localhost" in you netstat output - and that's weird. Can you re-run with netstat -n and post the output of "host localhost"
Also, sorry, unfortunately the documentation is unclar. Use either the device name or the network (ip & netmask) or the ESSID (for wifi), not the IP address of the interface
(In reply to Jens Georg from comment #3) > How is that supposed to work: > > You set +interface=192.168.0.4 > > And then expect something on an interface that is not 192.168.0.4? The system thinks itself as arekh.localhost $ cat /etc/hostname arekh.localdomain Its public local IP is 192.168.0.4 $ networkctl IDX LINK TYPE OPERATIONAL SETUP 1 lo loopback carrier unmanaged 2 eno1 ether carrier configuring 3 enp2s0 ether carrier configuring 4 wlp3s0 wlan off unmanaged 5 bond0 ether off unmanaged 6 bond1 ether routable configured $ networkctl status bond1 ● 6: bond1 Link File: /usr/lib/systemd/network/99-default.link Network File: /etc/systemd/network/bond1.network Type: ether State: routable (configured) Driver: bonding HW Address: fc:aa:14:2e:0c:4e (GIGA-BYTE TECHNOLOGY CO.,LTD.) Address: 192.168.0.4 2a02:8428:56d:bc00:bebb:6a7d:40b8:96f3 fe80::feaa:14ff:fe2e:c4e Gateway: 192.168.0.1 (SFR) DNS: 127.0.0.1 Search Domains: okg fr org net com Carrier Bound To: enp2s0 eno1 That IP has the name arekh.okg in the local DNS (but not all clients use the local dns, most access by ip) $ host arekh.okg arekh.okg has address 192.168.0.4 We see in # lsof -i |grep rygel that it is listening on localhost in addition to 192.168.0.4 (arekh.okg) so there is no reason for # gssdp-discover -i lo to fail? > But then again I see "localhost" in you netstat output - and that's weird. > Can you re-run with netstat -n # netstat -pn |grep rygel unix 3 [ ] STREAM CONNECTE 21614 808/rygel unix 3 [ ] STREAM CONNECTE 21615 808/rygel unix 3 [ ] STREAM CONNECTE 17249 808/rygel > and post the output of "host localhost" $ host localhost localhost has address 127.0.0.1 localhost has IPv6 address ::1
(In reply to Jens Georg from comment #4) > Also, sorry, unfortunately the documentation is unclar. Use either the > device name or the network (ip & netmask) or the ESSID (for wifi), not the > IP address of the interface I changed the line to interface=192.168.0.4/24,127.0.0.1/24,bond1 I restarted rygel juin 06 23:04:33 arekh.localdomain systemd[1]: Started Rygel DLNA server. juin 06 23:04:33 arekh.localdomain audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=rygel comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' juin 06 23:04:33 arekh.localdomain rygel[2939]: Rygel-Message: rygel-acl.vala:143: Pas de procédure de repli ACL trouvée. Utilisation de « allow » juin 06 23:04:33 arekh.localdomain rygel[2939]: Rygel-Message: Démarrage de Rygel v0.31.1… juin 06 23:04:33 arekh.localdomain rygel[2939]: (rygel:2939): Rygel-CRITICAL **: rygel_acl_on_name_vanished: assertion 'connection != NULL' failed juin 06 23:04:33 arekh.localdomain rygel[2939]: RygelCore-Message: Nouveau greffon « Playbin » disponible juin 06 23:04:33 arekh.localdomain rygel[2939]: RygelCore-Message: Nouveau greffon « MediaExport » disponible Still no luck in gssdp-discover (on the same host, as root) (now I'm even picking 100.79.147.150:58645 which does not seem to belong to me, seems someone's network is leaking) I wonder if rygel is alive at all (I don't like the Rygel-CRITICAL bit) – surely even if its networking was confused, I'd see some media file indexing messages by now with level 5 logging?
(In reply to Nicolas Mailhot from comment #6) > I changed the line to > interface=192.168.0.4/24,127.0.0.1/24,bond1 I changed the line again to interface=bond1 and this time I see some activity in the logs. So the config file comment that says interface is a list is lying Now let's see if something picks the result
No, interface is definitely a list, separated by ";". also it doesn't understand the ip/mask syntax, 192.168.0.0;127.0.0.0;bond1 should do. You can ignore the critical, that's related to DBus and completely irrelevant. Also, there seems to be a bug in GUPnP where it keeps listening on all interfaces it finds. So there will be output in netstat/lsof, but nothing will be exposed on the ports because Rygel is told to ignore them
(In reply to Nicolas Mailhot from comment #7) > (In reply to Nicolas Mailhot from comment #6) > > > I changed the line to > > interface=192.168.0.4/24,127.0.0.1/24,bond1 > > I changed the line again to > interface=bond1 > > and this time I see some activity in the logs. So the config file comment > that says interface is a list is lying > > Now let's see if something picks the result Ok it works on the three dlna output nodes I tested. Thank you very much, I was stuck! However there's something strange in the way Rygel exports the Year (Année in French) music facet: on two players out of three it is displayed as Ann?e, even though diacritics are perfect on track title and artist names
That sounds odd. Everything should be sent as UTF-8 and clearly announced as such. https://git.gnome.org/browse/rygel/tree/po/fr.po#n1359 doesn't look suspicious.
Created attachment 330404 [details] [review] doc: Explain interface list a bit better Signed-off-by: Jens Georg <mail@jensge.org>
Created attachment 330405 [details] [review] rygel: Allow IP addresses in interface list Signed-off-by: Jens Georg <mail@jensge.org>
Attachment 330404 [details] pushed as c9f3703 - doc: Explain interface list a bit better Attachment 330405 [details] pushed as 30e6d89 - rygel: Allow IP addresses in interface list