raop: Deduplicate sink creation
Note: The de-duplication seems to only start to kick in after disabling and re-enabling the network interfaces used for mDNS discovery. There might be a race initially when the sinks are first created upon user login. A solution might be to introduce a lock mechanism so the avahi mDNS resolution is limited to resolving one service record at a time.
Please give this a look and a test run
Currently, RAOP sinks referencing the same remote ip and port may be created multiple times: One each for IPv4 and IPv6, times the number of network interfaces used for mDNS discovery.
A recent change added (IPv4)
and (IPv6)
identifiers to the sinks' pretty names, however that
is misleading, as often times the service advertised through an mDNSv6 record is actually an
IPv4 service (i.e. the IP reference contained in the IPv6 record may be an IPv4 address).
With this change, sink creation is skipped if a sink with the same advertised name already exists.