Re: [Development] Requesting New Repository - QtZeroConf
> Hi, > > Given that mdns uses an unprivileged port, it seems like to me it should > be possible > for just about any process to send and receive mdns queries. Which means > that any > app could participate in the mdns groups by itself if it wanted. The > primary advantage > that I can see with re-using a running daemon is that the daemon can > detect if your > process crashes and clear out the distributed DNS records. If the app > takes care of > that by itself, then it would have to deliberately use short TTLs I think. > > Interestingly enough, the protocol doesn't seem to be that complicated. A > cross-platform > implementation written in Go is under 1000 LOC (server and client, count > includes comments): > > https://github.com/hashicorp/mdns > > > So an alternate approach would be to try to implement the protocol by > itself. > > > Another option that I think would be viable is to go up in the level of > abstraction > and try to come up with an API that allows discovery and publishing of > network > services on mdns as well as UPNP at the same time. Then the windows > version could > just re-use UPNP APIs in Windows and on the other OSes we use zeroconf. ssdp discovers devices, zeroconf discovers services (on devices). ssdp has different classes of devices (eg. rootdevice). zeroconf has optional txt records. I don't see a way to combine these into a higher level of abstraction. -- ssdp -- registerResourceSimple(const char *target, const char *usn, const char *location) registerResourceSimple("upnp:rootdevice", "uuid:1234abcd-12ab-12ab-12ab-1234567abc12::upnp:rootdevice", "http://192.168.1.100/;); -- ZeroConf -- registerService(const char *name, const char *type, const char *domain, quint16 port); registerService("Vaction-Tracker-server", "_vactracker._tcp", "local", 12345); I have completed testing of my zeroconf project on Linux, Android, Windows and Mac. I would like to contribute the code to the playground area with the project name zeroconf with the hope of it someday becoming a sub module. Jon ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
Hi Thiago, On Thu, Sep 10, 2015 at 5:47 PM, Thiago Macieirawrote: > I don't know any project implementing LLMNR outside of Windows. It's clearly > dead in terms of further adoption and mDNS has won. So I don't think we need > to provide it for cross-platform interoperability. I'd say we provide mDNS for > that. In addition, we may provide some other IoT protocols currently in > development. Systemd supports LLMNR and uses it to address containers it starts. References: http://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html https://lwn.net/Articles/647634/ Best Regards, Tobias ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On 10/09/15 06:14, "Thiago Macieira"wrote: >On Wednesday 09 September 2015 22:59:11 Jonathan Bagg wrote: >> http://lists.apple.com/archives/rendezvous-dev/2004/Apr/msg00031.html >> Windows LLMNR doesn't appear to be compatible with mDNS / zeroconf. Are >> you suggesting on Windows there would be an option to use LLMNR or mDNS? > >I know it isn't compatible, but it is doing the same function. I'm not >asking >to replace mDNS support on Windows (interoperability), but I am asking if >it >makes sense to also add support for LLMNR as it's available anyway. I think that could make sense. But ideally, we would then support it cross platform. I’d be happy about a Qt add-on for zeroconf. Discovering services on the local network is something I think is missing in Qt at this point in time. Cheers, Lars > >For that matter, all of the IoT protocols support discovery in some >level. For >us in OIC, it's done by a multicast CoAP packet (which is really easy to >do >with QUdpSocket). Do you think there's room for this kind of extended >discovery? ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Wed, Sep 09, 2015 at 05:56:21PM -0400, Jonathan Bagg wrote: > 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 > what is the longer-term perspective of this class? a separate module sounds unreasonable. and if it's to become part of qtnetwork, then maybe you should just start by posting a change for qtbase/dev and have it "ripen" in the review? ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On 10/09/15 11:49, "Oswald Buddenhagen"wrote: >On Wed, Sep 09, 2015 at 05:56:21PM -0400, Jonathan Bagg wrote: >> 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 >> >what is the longer-term perspective of this class? a separate module >sounds unreasonable. and if it's to become part of qtnetwork, then >maybe you should just start by posting a change for qtbase/dev and have >it "ripen" in the review? I am hesitating to throw this into QtNetwork. It would add another dependency to qtnetwork and add quite a bit of code that’s not being used by everybody. Keeping it in a separate repository is more modular, and should be more maintainable for everybody. The only reason to throw it into qtbase would be if we required this for some of our platform plugins, but I can’t see that need. Cheers, Lars ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On 10/09/15 09:56, "Ola Røer Thorsen"wrote: > >2015-09-09 23:56 GMT+02:00 Jonathan Bagg > : > >Window -> Apple's Bonjour > > >Would this mean Bonjour would be bundled with Qt for the Windows version, >or will it have to be installed separately? That’s then basically a packaging question, so we can decide that once we have it all working. The Bonjour license (Apache 2.0) would at least not forbid us to ship it. Cheers, Lars ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
2015-09-09 23:56 GMT+02:00 Jonathan Bagg: > Window -> Apple's Bonjour > > Would this mean Bonjour would be bundled with Qt for the Windows version, or will it have to be installed separately? Cheers, Ola ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
10.09.2015, 00:56, "Jonathan Bagg": > 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? -- Regards, Konstantin ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
> On 10/09/15 09:56, "Ola Røer Thorsen"wrote: > >> >>2015-09-09 23:56 GMT+02:00 Jonathan Bagg >> : >> >>Window -> Apple's Bonjour >> >> >>Would this mean Bonjour would be bundled with Qt for the Windows >> version, >>or will it have to be installed separately? > > Thatâs then basically a packaging question, so we can decide that once > we > have it all working. The Bonjour license (Apache 2.0) would at least not > forbid us to ship it. Window is tricky. Right now I'm using Apple's binary library (dnssd.lib) which excludes the use of mingw. I think the source code for dnssd.lib is... http://www.opensource.apple.com/source/mDNSResponder/mDNSResponder-561.1.1/mDNSShared/ so ideally mDNSShared source could be distributed and not the binary. 2nd problem is that either source or binary still requires Apple's print services (or itunes) be installed. One thought I've had is that avahi-core be ported to Windows. The issue with this is that two separate Qt programs could each be running there own mDNS stack which you are not supposed to do. The best solution for windows is probably mDNSShared source. Jon ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Sep 10, 2015, at 12:05, Konstantin Tokarevwrote: > > > 10.09.2015, 00:56, "Jonathan Bagg" : >> 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? 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. ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Thursday 10 September 2015 07:07:49 Knoll Lars wrote: > >I know it isn't compatible, but it is doing the same function. I'm not > >asking > >to replace mDNS support on Windows (interoperability), but I am asking if > >it > >makes sense to also add support for LLMNR as it's available anyway. > > > I think that could make sense. But ideally, we would then support it cross > platform. > > I’d be happy about a Qt add-on for zeroconf. Discovering services on the > local network is something I think is missing in Qt at this point in time. I don't know any project implementing LLMNR outside of Windows. It's clearly dead in terms of further adoption and mDNS has won. So I don't think we need to provide it for cross-platform interoperability. I'd say we provide mDNS for that. In addition, we may provide some other IoT protocols currently in development. In any case, the gist of this discussion is that neither the module nor the library should be called "zeroconf", if they provide more functionality. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Thursday 10 September 2015 09:47:57 dr...@infidigm.net wrote: > One thought I've had is that avahi-core be ported to Windows. The issue > with this is that two separate Qt programs could each be running there own > mDNS stack which you are not supposed to do. The best solution for > windows is probably mDNSShared source. Doesn't Avahi have an in-process mode? Or does it always require an out-of- process service? D-Bus on Windows, for example, looks for dbus-launch.exe on PATH and starts it. If it's missing, QtDBus still compiles and you can ship your application, but refuses to connect anywhere. We could go for a similar approach, but I don't like it. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
10.09.2015, 18:51, "dr...@infidigm.net": >> On Sep 10, 2015, at 12:05, Konstantin Tokarev wrote: >> >>> 10.09.2015, 00:56, "Jonathan Bagg" : 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 ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Thursday 10 September 2015 08:26:25 Knoll Lars wrote: > That’s then basically a packaging question, so we can decide that once we > have it all working. The Bonjour license (Apache 2.0) would at least not > forbid us to ship it. It would require the code in question to be LGPLv3, not an earlier licence. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
> > On Sep 10, 2015, at 12:05, Konstantin Tokarevwrote: > >> >> >> 10.09.2015, 00:56, "Jonathan Bagg" : >>> 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 thats 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 ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Thursday 10 September 2015 11:26:45 Rutledge Shawn wrote: > 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) And that's totally irrelevant in an IPv6 world as the kernel does that. You're right, assigning of IP addresses is completely outside our perspective. We're only talking about the service discovery (DNS-SD) part, in the local network (mDNS). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
> On Thursday 10 September 2015 09:47:57 dr...@infidigm.net wrote: >> One thought I've had is that avahi-core be ported to Windows. The issue >> with this is that two separate Qt programs could each be running there >> own >> mDNS stack which you are not supposed to do. The best solution for >> windows is probably mDNSShared source. > > Doesn't Avahi have an in-process mode? Or does it always require an > out-of- > process service? Both. avahi-client is a convenience api that talks to the avahi-daemon over dbus...most linux systems avahi-core is for embedded environments and runs it's own mDNS stack...for when there is no avahi-daemon > D-Bus on Windows, for example, looks for dbus-launch.exe on PATH and > starts > it. If it's missing, QtDBus still compiles and you can ship your > application, > but refuses to connect anywhere. We could go for a similar approach, but I > don't like it. Apple's bonjour lib is like avahi-client in that it connects to mDNSResponder. mDNSResponder, or something like it is built into OSx and iOS, but on windows comes in Apple's print services. The wrappers that use avahi-client and Apple's bonjour lib would be the same as QtDBus as in it would still compile and ship, but is really only an issue for windows. Jon ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Thursday 10 September 2015 12:28:13 dr...@infidigm.net wrote: > avahi-core is for embedded environments and runs it's own mDNS stack...for > when there is no avahi-daemon > > > D-Bus on Windows, for example, looks for dbus-launch.exe on PATH and > > starts > > it. If it's missing, QtDBus still compiles and you can ship your > > application, > > but refuses to connect anywhere. We could go for a similar approach, but I > > don't like it. > > Apple's bonjour lib is like avahi-client in that it connects to > mDNSResponder. mDNSResponder, or something like it is built into OSx and > iOS, but on windows comes in Apple's print services. > > The wrappers that use avahi-client and Apple's bonjour lib would be the > same as QtDBus as in it would still compile and ship, but is really only > an issue for windows. Do you know if avahi-core could be made to run on Windows? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
>> Apple's bonjour lib is like avahi-client in that it connects to >> mDNSResponder. mDNSResponder, or something like it is built into OSx >> and >> iOS, but on windows comes in Apple's print services. >> >> The wrappers that use avahi-client and Apple's bonjour lib would be the >> same as QtDBus as in it would still compile and ship, but is really only >> an issue for windows. > > Do you know if avahi-core could be made to run on Windows? When I briefly tried it (2 months ago) I think it was an issue with the unix style sockets. Googling didn't show much. If it did work, I suspect it would be buggy as avahi really complains when it detects multiple mDNS stacks running. Jon ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On 10/09/15 19:58, "development-bounces+lars.knoll=theqtcompany@qt-project.org on behalf of dr...@infidigm.net"wrote: > >>> Apple's bonjour lib is like avahi-client in that it connects to >>> mDNSResponder. mDNSResponder, or something like it is built into OSx >>> and >>> iOS, but on windows comes in Apple's print services. I remember that we tried using the bonjour libs for a project inside the Qt company, and I don't remember that we needed any print services from Apple. But I could very well be wrong. >>> >>> The wrappers that use avahi-client and Apple's bonjour lib would be the >>> same as QtDBus as in it would still compile and ship, but is really only >>> an issue for windows. >> >> Do you know if avahi-core could be made to run on Windows? > >When I briefly tried it (2 months ago) I think it was an issue with the >unix style sockets. Googling didn't show much. If it did work, I suspect >it would be buggy as avahi really complains when it detects multiple mDNS >stacks running. So the problem would be to detect if a mDNS stack is already running, and if not start the service somehow? Or is there a way to make it possible to run multiple stacks on one host (ie. Is having only one stack a limitation in the protocol or the implementation)? It would be great if we could simply do this in process. Cheers, Lars ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
Hi, Given that mdns uses an unprivileged port, it seems like to me it should be possible for just about any process to send and receive mdns queries. Which means that any app could participate in the mdns groups by itself if it wanted. The primary advantage that I can see with re-using a running daemon is that the daemon can detect if your process crashes and clear out the distributed DNS records. If the app takes care of that by itself, then it would have to deliberately use short TTLs I think. Interestingly enough, the protocol doesn't seem to be that complicated. A cross-platform implementation written in Go is under 1000 LOC (server and client, count includes comments): https://github.com/hashicorp/mdns So an alternate approach would be to try to implement the protocol by itself. Another option that I think would be viable is to go up in the level of abstraction and try to come up with an API that allows discovery and publishing of network services on mdns as well as UPNP at the same time. Then the windows version could just re-use UPNP APIs in Windows and on the other OSes we use zeroconf. That way there's no deployment issue at all, no windows administrator rights are needed to install and run a service (apple mdns), etc. Simon From: development-bounces+simon.hausmann=theqtcompany@qt-project.org <development-bounces+simon.hausmann=theqtcompany@qt-project.org> on behalf of dr...@infidigm.net <dr...@infidigm.net> Sent: Thursday, September 10, 2015 22:29 To: Knoll Lars Cc: Thiago Macieira; development@qt-project.org Subject: Re: [Development] Requesting New Repository - QtZeroConf >>>> Apple's bonjour lib is like avahi-client in that it connects to >>>> mDNSResponder. mDNSResponder, or something like it is built into OSx >>>> and >>>> iOS, but on windows comes in Apple's print services. > > I remember that we tried using the bonjour libs for a project inside the > Qt company, and I don't remember that we needed any print services from > Apple. But I could very well be wrong. I think it used to be called mDNSResponder. >>When I briefly tried it (2 months ago) I think it was an issue with the >>unix style sockets. Googling didn't show much. If it did work, I >> suspect >>it would be buggy as avahi really complains when it detects multiple >> mDNS >>stacks running. > > So the problem would be to detect if a mDNS stack is already running, and > if not start the service somehow? Hmmm, maybe mDNSResponder (or whatever it is called now) could be built along with QtZeroConf for windows? Seems ugly. > Or is there a way to make it possible to run multiple stacks on one host > (ie. Is having only one stack a limitation in the protocol or the > implementation)? It would be great if we could simply do this in process. Both Apple (on windows) and avahi have a daemon for the mDNS stack. I'm not an mDNS expert, but I really think if it could be done in multiple processes they would have made a way for it. This is the warning avahi spits out when it detects another stack *** WARNING: Detected another IPv4 mDNS stack running on this host. This makes mDNS unreliable and is thus not recommended. *** *** WARNING: Detected another IPv6 mDNS stack running on this host. This makes mDNS unreliable and is thus not recommended. *** Jon ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
Apple's bonjour lib is like avahi-client in that it connects to mDNSResponder. mDNSResponder, or something like it is built into OSx and iOS, but on windows comes in Apple's print services. > > I remember that we tried using the bonjour libs for a project inside the > Qt company, and I don't remember that we needed any print services from > Apple. But I could very well be wrong. I think it used to be called mDNSResponder. >>When I briefly tried it (2 months ago) I think it was an issue with the >>unix style sockets. Googling didn't show much. If it did work, I >> suspect >>it would be buggy as avahi really complains when it detects multiple >> mDNS >>stacks running. > > So the problem would be to detect if a mDNS stack is already running, and > if not start the service somehow? Hmmm, maybe mDNSResponder (or whatever it is called now) could be built along with QtZeroConf for windows? Seems ugly. > Or is there a way to make it possible to run multiple stacks on one host > (ie. Is having only one stack a limitation in the protocol or the > implementation)? It would be great if we could simply do this in process. Both Apple (on windows) and avahi have a daemon for the mDNS stack. I'm not an mDNS expert, but I really think if it could be done in multiple processes they would have made a way for it. This is the warning avahi spits out when it detects another stack *** WARNING: Detected another IPv4 mDNS stack running on this host. This makes mDNS unreliable and is thus not recommended. *** *** WARNING: Detected another IPv6 mDNS stack running on this host. This makes mDNS unreliable and is thus not recommended. *** Jon ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
[Development] Requesting New Repository - QtZeroConf
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 ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Wednesday 09 September 2015 17:56:21 Jonathan Bagg wrote: > 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 Sounds good. Do you have any code to be imported or is this a brand new development? Do you think it would make sense to provide a layer above of abstraction and support Windows LLMNR service? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On Wednesday 09 September 2015 22:59:11 Jonathan Bagg wrote: > http://lists.apple.com/archives/rendezvous-dev/2004/Apr/msg00031.html > Windows LLMNR doesn't appear to be compatible with mDNS / zeroconf. Are > you suggesting on Windows there would be an option to use LLMNR or mDNS? I know it isn't compatible, but it is doing the same function. I'm not asking to replace mDNS support on Windows (interoperability), but I am asking if it makes sense to also add support for LLMNR as it's available anyway. For that matter, all of the IoT protocols support discovery in some level. For us in OIC, it's done by a multicast CoAP packet (which is really easy to do with QUdpSocket). Do you think there's room for this kind of extended discovery? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development
Re: [Development] Requesting New Repository - QtZeroConf
On 15-09-09 09:34 PM, Thiago Macieira wrote: > On Wednesday 09 September 2015 17:56:21 Jonathan Bagg wrote: >> 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 > Sounds good. > > Do you have any code to be imported or is this a brand new development? > > Do you think it would make sense to provide a layer above of abstraction and > support Windows LLMNR service? I have some code (wrapper for avahi-client and bonjour with basic service advertisement and browsing+resolving). avahi-core and text record support still to be added. http://lists.apple.com/archives/rendezvous-dev/2004/Apr/msg00031.html Windows LLMNR doesn't appear to be compatible with mDNS / zeroconf. Are you suggesting on Windows there would be an option to use LLMNR or mDNS? Jon ___ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development