[Development] Requesting New Repository - QtZeroConf

Konstantin Tokarev annulen at yandex.ru
Thu Sep 10 18:09:36 CEST 2015



10.09.2015, 18:51, "drwho at infidigm.net" <drwho at infidigm.net>:
>>  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.


SSDP messages are based on HTTP, so one may try to add custom headers to
requests and/or responses. I've never seen them being used in practice
though.


-- 
Regards,
Konstantin



More information about the Development mailing list