ProtocolVersion is read for already known devices too

It might have changed since last connection, so we don't store it
This commit is contained in:
Albert Vaca 2013-10-01 03:11:22 +02:00
parent a06cf677f4
commit 920d945a5d
3 changed files with 11 additions and 9 deletions

View file

@ -140,7 +140,7 @@ void Daemon::onNewDeviceLink(const NetworkPackage& identityPackage, DeviceLink*
if (mDevices.contains(id)) { if (mDevices.contains(id)) {
//qDebug() << "It is a known device"; //qDebug() << "It is a known device";
Device* device = mDevices[id]; Device* device = mDevices[id];
device->addLink(dl); device->addLink(identityPackage, dl);
} else { } else {
//qDebug() << "It is a new device"; //qDebug() << "It is a new device";

View file

@ -34,6 +34,8 @@ Device::Device(const QString& id)
m_pairStatus = Device::Paired; m_pairStatus = Device::Paired;
m_protocolVersion = NetworkPackage::ProtocolVersion; //We don't know it yet
//Register in bus //Register in bus
QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors); QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
@ -43,13 +45,8 @@ Device::Device(const NetworkPackage& identityPackage, DeviceLink* dl)
{ {
m_deviceId = identityPackage.get<QString>("deviceId"); m_deviceId = identityPackage.get<QString>("deviceId");
m_deviceName = identityPackage.get<QString>("deviceName"); m_deviceName = identityPackage.get<QString>("deviceName");
m_protocolVersion = identityPackage.get<int>("protocolVersion"); m_protocolVersion = identityPackage.get<int>("protocolVersion");
if (m_protocolVersion != NetworkPackage::ProtocolVersion) { addLink(identityPackage, dl);
qWarning() << m_deviceName << "- warning, device uses a different protocol version" << m_protocolVersion << "expected" << NetworkPackage::ProtocolVersion;
}
addLink(dl);
m_pairStatus = Device::NotPaired; m_pairStatus = Device::NotPaired;
@ -195,10 +192,15 @@ static bool lessThan(DeviceLink* p1, DeviceLink* p2)
return p1->provider()->priority() > p2->provider()->priority(); return p1->provider()->priority() > p2->provider()->priority();
} }
void Device::addLink(DeviceLink* link) void Device::addLink(const NetworkPackage& identityPackage, DeviceLink* link)
{ {
//qDebug() << "Adding link to" << id() << "via" << link->provider(); //qDebug() << "Adding link to" << id() << "via" << link->provider();
m_protocolVersion = identityPackage.get<int>("protocolVersion");
if (m_protocolVersion != NetworkPackage::ProtocolVersion) {
qWarning() << m_deviceName << "- warning, device uses a different protocol version" << m_protocolVersion << "expected" << NetworkPackage::ProtocolVersion;
}
connect(link, SIGNAL(destroyed(QObject*)), connect(link, SIGNAL(destroyed(QObject*)),
this, SLOT(linkDestroyed(QObject*))); this, SLOT(linkDestroyed(QObject*)));

View file

@ -62,7 +62,7 @@ public:
QString dbusPath() const { return "/modules/kdeconnect/devices/"+id(); } QString dbusPath() const { return "/modules/kdeconnect/devices/"+id(); }
//Add and remove links //Add and remove links
void addLink(DeviceLink*); void addLink(const NetworkPackage& identityPackage, DeviceLink*);
void removeLink(DeviceLink*); void removeLink(DeviceLink*);
Q_SCRIPTABLE bool isPaired() const { return m_pairStatus==Device::Paired; } Q_SCRIPTABLE bool isPaired() const { return m_pairStatus==Device::Paired; }