[Development] Requesting New Repository - QtZeroConf

drwho at infidigm.net drwho at infidigm.net
Thu Sep 10 17:55:33 CEST 2015


>
> On Sep 10, 2015, at 12:05, Konstantin Tokarev <annulen at yandex.ru> wrote:
>
>>
>>
>> 10.09.2015, 00:56, "Jonathan Bagg" <drwho at infidigm.net>:
>>> Project name: QtZeroConf
>>>
>>> Project description:
>>> QtZeroConf is a wrapper class for various mDNS discovery libraries
>>> across
>>> multiple platforms:
>>>
>>> Linux -> Avahi-client
>>> Android -> Avahi-core or Android Network Discovery Service
>>> Embedded -> Avahi-core
>>> MAC -> Apple's Bonjour
>>> iOS -> Apple's Bonjour
>>> Window -> Apple's Bonjour
>>>
>>> Responsible persons: Jonathan Bagg
>>>
>>> (playgound unless suggested otherwise)
>>> Desired repository name: playground/qtzeroconf
>>
>>
>> Does SSDP (UPnP) discovery fit into this project?
>
> Maybe we should call the module something more generic like
> QtServiceDiscovery.  Zeroconf can be used to discover both devices and
> services, but a service on a device is the more specific thing of
> interest, right?

I would say "discover devices that advertise a specific service"

> Zeroconf also covers self-assigning a network address if there is no DHCP
> server, but thatÂ’s irrelevant to this module, I suppose.  (e.g. dhcpcd
> does that if it times out while trying to find a DHCP server)
>
> There are many attempts to come up with a less centralized alternative to
> DNS.  (namecoin, ipfs, various other projects using the DHT concept, even
> the magnet links used for bittorrent, etc)  So, maybe one of those would
> be in scope some day too.  Again the goal would be to map a well-known
> name to some sort of URI which identifies a service, or a specific file.


I'm ok with this project being called QtServiceDiscovery,
QtNetworkServiceDiscovery or similar if someone wants to work on the other
protocols.  I can only commit to the zeroconf wrappers.

With multiple protocol support, I guess a parameter to the constructor to
specify the protocol?  I've tried to keep things simple.  Service
advertisement example:

QZeroConf zeroConf;
zeroConf.registerService("Vaction-Tracker-server", "_vactracker._tcp",
"local", "", SRV_PORT);

(discovery is just a little more complicated with a signal emitted for
each resolved service/device)

zeroconf / bonjour has a feature called text records that let apps put
arbitrary text fields in their service advertisement.  I don't think SSDP,
SLP, or LLMNR support this, so I'm not sure how this zeroconf feature
would be handled in the abstract case.

Jon




More information about the Development mailing list