forked from qt-creator/qt-creator
zeroconf: add version to avahi lib
Change-Id: Iedb59b74b1f9950abb0ca1d5adaaa594a465c0fd Reviewed-by: Niels Weber <niels.2.weber@nokia.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
This commit is contained in:
@@ -33,6 +33,7 @@
|
|||||||
#include "servicebrowser.h"
|
#include "servicebrowser.h"
|
||||||
#include "servicebrowser_p.h"
|
#include "servicebrowser_p.h"
|
||||||
|
|
||||||
|
#include <QtGlobal>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QLibrary>
|
#include <QLibrary>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
@@ -126,9 +127,10 @@ private:
|
|||||||
QLibrary nativeLib;
|
QLibrary nativeLib;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
AvahiZConfLib(QString libName = QLatin1String("avahi"),
|
AvahiZConfLib(QString libName = QLatin1String("avahi-client"),
|
||||||
|
QString version = QLatin1String("3"),
|
||||||
ZConfLib::Ptr fallBack = ZConfLib::Ptr(0)) :
|
ZConfLib::Ptr fallBack = ZConfLib::Ptr(0)) :
|
||||||
ZConfLib(fallBack), nativeLib(libName)
|
ZConfLib(fallBack), nativeLib(libName, version)
|
||||||
{
|
{
|
||||||
#ifndef ZCONF_AVAHI_STATIC_LINKING
|
#ifndef ZCONF_AVAHI_STATIC_LINKING
|
||||||
// dynamic linking
|
// dynamic linking
|
||||||
@@ -370,8 +372,10 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ZConfLib::Ptr ZConfLib::createAvahiLib(const QString &libName, ZConfLib::Ptr fallback) {
|
ZConfLib::Ptr ZConfLib::createAvahiLib(const QString &libName, const QString &version,
|
||||||
return ZConfLib::Ptr(new AvahiZConfLib(libName, fallback));
|
ZConfLib::Ptr fallback)
|
||||||
|
{
|
||||||
|
return ZConfLib::Ptr(new AvahiZConfLib(libName, version, fallback));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void cAvahiResolveReply(
|
extern "C" void cAvahiResolveReply(
|
||||||
@@ -557,7 +561,9 @@ extern "C" int cAvahiPollFunction(struct pollfd *ufds, unsigned int nfds, int ti
|
|||||||
namespace ZeroConf {
|
namespace ZeroConf {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
ZConfLib::Ptr ZConfLib::createAvahiLib(const QString &/*extraPaths*/, ZConfLib::Ptr fallback) {
|
ZConfLib::Ptr ZConfLib::createAvahiLib(const QString &/*lib*/, const QString &version,
|
||||||
|
ZConfLib::Ptr fallback)
|
||||||
|
{
|
||||||
return fallback;
|
return fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -132,8 +132,8 @@ class ZeroConfLib
|
|||||||
public:
|
public:
|
||||||
ZeroConfLib();
|
ZeroConfLib();
|
||||||
ZConfLib::Ptr defaultLib();
|
ZConfLib::Ptr defaultLib();
|
||||||
void setDefaultLib(LibUsage usage, const QString &avahiLibName, const QString &dnsSdLibName,
|
void setDefaultLib(LibUsage usage, const QString &avahiLibName, const QString &avahiVersion,
|
||||||
const QString &dnsSdDaemonPath);
|
const QString &dnsSdLibName, const QString &dnsSdDaemonPath);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const char *defaultmDnsSdLibName;
|
static const char *defaultmDnsSdLibName;
|
||||||
@@ -153,7 +153,7 @@ Q_GLOBAL_STATIC(ZeroConfLib, zeroConfLibInstance)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
ZeroConfLib::ZeroConfLib(): m_lock(QMutex::Recursive),
|
ZeroConfLib::ZeroConfLib(): m_lock(QMutex::Recursive),
|
||||||
m_defaultLib(ZConfLib::createAvahiLib(QLatin1String("avahi-client"),
|
m_defaultLib(ZConfLib::createAvahiLib(QLatin1String("avahi-client"),QLatin1String("3"),
|
||||||
ZConfLib::createDnsSdLib(QLatin1String(defaultmDnsSdLibName),
|
ZConfLib::createDnsSdLib(QLatin1String(defaultmDnsSdLibName),
|
||||||
ZConfLib::createEmbeddedLib(QLatin1String(defaultmDNSDaemonName)))))
|
ZConfLib::createEmbeddedLib(QLatin1String(defaultmDNSDaemonName)))))
|
||||||
{
|
{
|
||||||
@@ -169,7 +169,8 @@ ZConfLib::Ptr ZeroConfLib::defaultLib(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ZeroConfLib::setDefaultLib(LibUsage usage, const QString &avahiLibName,
|
void ZeroConfLib::setDefaultLib(LibUsage usage, const QString &avahiLibName,
|
||||||
const QString &dnsSdLibName, const QString &dnsSdDaemonPath){
|
const QString &avahiVersion, const QString &dnsSdLibName,
|
||||||
|
const QString &dnsSdDaemonPath){
|
||||||
QMutexLocker l(&m_lock);
|
QMutexLocker l(&m_lock);
|
||||||
switch (usage){
|
switch (usage){
|
||||||
case (UseDnsSdOnly):
|
case (UseDnsSdOnly):
|
||||||
@@ -179,15 +180,16 @@ void ZeroConfLib::setDefaultLib(LibUsage usage, const QString &avahiLibName,
|
|||||||
m_defaultLib = ZConfLib::createEmbeddedLib(dnsSdDaemonPath);
|
m_defaultLib = ZConfLib::createEmbeddedLib(dnsSdDaemonPath);
|
||||||
break;
|
break;
|
||||||
case (UseAvahiOnly):
|
case (UseAvahiOnly):
|
||||||
m_defaultLib = ZConfLib::createAvahiLib(avahiLibName);
|
m_defaultLib = ZConfLib::createAvahiLib(avahiLibName, avahiVersion);
|
||||||
break;
|
break;
|
||||||
case (UseAvahiOrDnsSd):
|
case (UseAvahiOrDnsSd):
|
||||||
m_defaultLib = ZConfLib::createAvahiLib(avahiLibName, ZConfLib::createDnsSdLib(dnsSdLibName));
|
m_defaultLib = ZConfLib::createAvahiLib(avahiLibName, avahiVersion,
|
||||||
|
ZConfLib::createDnsSdLib(dnsSdLibName));
|
||||||
break;
|
break;
|
||||||
case (UseAvahiOrDnsSdOrEmbedded):
|
case (UseAvahiOrDnsSdOrEmbedded):
|
||||||
m_defaultLib = ZConfLib::createAvahiLib(
|
m_defaultLib = ZConfLib::createAvahiLib(avahiLibName, avahiVersion,
|
||||||
avahiLibName, ZConfLib::createDnsSdLib(dnsSdLibName,
|
ZConfLib::createDnsSdLib(dnsSdLibName,
|
||||||
ZConfLib::createEmbeddedLib(dnsSdDaemonPath)));
|
ZConfLib::createEmbeddedLib(dnsSdDaemonPath)));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
qDebug() << "invalid usage " << usage;
|
qDebug() << "invalid usage " << usage;
|
||||||
@@ -583,10 +585,10 @@ void ServiceBrowser::autoRefresh()
|
|||||||
|
|
||||||
\threadsafe
|
\threadsafe
|
||||||
*/
|
*/
|
||||||
void setDefaultZConfLib(LibUsage usage, const QString &avahiLibName, const QString &dnsSdLibName,
|
void setDefaultZConfLib(LibUsage usage, const QString &avahiLibName, const QString &version,
|
||||||
const QString &dnsSdDaemonPath)
|
const QString &dnsSdLibName,const QString &dnsSdDaemonPath)
|
||||||
{
|
{
|
||||||
zeroConfLibInstance()->setDefaultLib(usage, avahiLibName, dnsSdLibName, dnsSdDaemonPath);
|
zeroConfLibInstance()->setDefaultLib(usage, avahiLibName, version, dnsSdLibName, dnsSdDaemonPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -1786,6 +1788,10 @@ void MainConnection::createConnection()
|
|||||||
abortLib();
|
abortLib();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (status() < Stopping)
|
||||||
|
appendError(ErrorMessage::NoteLevel,
|
||||||
|
tr("MainConncetion could sucessfully create a connection using lib %1")
|
||||||
|
.arg(lib->name()));
|
||||||
}
|
}
|
||||||
|
|
||||||
ZConfLib::RunLoopStatus MainConnection::handleEvent()
|
ZConfLib::RunLoopStatus MainConnection::handleEvent()
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ public:
|
|||||||
|
|
||||||
static Ptr createEmbeddedLib(const QString &daemonPath, Ptr fallback = Ptr(0));
|
static Ptr createEmbeddedLib(const QString &daemonPath, Ptr fallback = Ptr(0));
|
||||||
static Ptr createDnsSdLib(const QString &libName, Ptr fallback = Ptr(0));
|
static Ptr createDnsSdLib(const QString &libName, Ptr fallback = Ptr(0));
|
||||||
static Ptr createAvahiLib(const QString &libName, Ptr fallback = Ptr(0));
|
static Ptr createAvahiLib(const QString &libName, const QString &version, Ptr fallback = Ptr(0));
|
||||||
protected:
|
protected:
|
||||||
bool m_isOk;
|
bool m_isOk;
|
||||||
QString m_errorMsg;
|
QString m_errorMsg;
|
||||||
|
|||||||
Reference in New Issue
Block a user