only create one avahi server instance

On platforms which create their own avahi server (e.g. Android)
the previous code would assert as there can only be one server
instantiated but creating multiple QtZeroConf objects tried
to create multiple servers.
This commit is contained in:
Michael Zanetti
2018-06-01 01:46:31 +02:00
parent d91e9e5b81
commit 407e84dbfc

View File

@ -55,7 +55,9 @@ public:
avahi_server_config_init(&config); avahi_server_config_init(&config);
config.publish_workstation = 0; config.publish_workstation = 0;
server = avahi_server_new(poll, &config, serverCallback, this, &error); if (!server) {
server = avahi_server_new(poll, &config, serverCallback, this, &error);
}
if (!server) { if (!server) {
return; return;
} }
@ -256,7 +258,7 @@ public:
QZeroConf *pub; QZeroConf *pub;
const AvahiPoll *poll; const AvahiPoll *poll;
AvahiServer *server; static AvahiServer *server;
AvahiServerConfig config; AvahiServerConfig config;
AvahiSEntryGroup *group; AvahiSEntryGroup *group;
AvahiSServiceBrowser *browser; AvahiSServiceBrowser *browser;
@ -267,6 +269,7 @@ public:
qint32 port; qint32 port;
}; };
AvahiServer* QZeroConfPrivate::server = nullptr;
QZeroConf::QZeroConf(QObject *parent) : QObject (parent) QZeroConf::QZeroConf(QObject *parent) : QObject (parent)
{ {