if(!funcName.isEmpty()) {
fn = QMetaObject::normalizedSignature(funcName);
} else {
- fn = SIGNAL();
- fn += sender->metaObject()->method(signalId).signature();
+ fn = SIGNAL(fakeMethodSignature());
+ fn = fn.replace("fakeMethodSignature()", sender->metaObject()->method(signalId).signature());
}
_slots[slotId] = Signal(sender, signalId, fn);
}
void SignalProxy::receivePeerSignal(AbstractPeer *sender, const RequestType &requestType, const QVariantList ¶ms) {
+ switch(requestType) {
+ // list all RequestTypes that shouldnot trigger a heartbeat counter reset here
+ case HeartBeatReply:
+ break;
+ default:
+ if(sender->type() == AbstractPeer::IODevicePeer) {
+ IODevicePeer *ioPeer = static_cast<IODevicePeer *>(sender);
+ ioPeer->sentHeartBeats = 0;
+ }
+ }
+
switch(requestType) {
case RpcCall:
if(params.empty())
}
bool SignalProxy::readDataFromDevice(QIODevice *dev, quint32 &blockSize, QVariant &item, bool compressed) {
+ if(!dev)
+ return false;
+
QDataStream in(dev);
in.setVersion(QDataStream::Qt_4_2);
}
if(blockSize > 1 << 22) {
- disconnectDevice(dev, tr("Client tried to send package larger than max package size!"));
+ disconnectDevice(dev, tr("Peer tried to send package larger than max package size!"));
return false;
}
if(blockSize == 0) {
- disconnectDevice(dev, tr("Client tried to send 0 byte package!"));
+ disconnectDevice(dev, tr("Peer tried to send 0 byte package!"));
return false;
}
if(nbytes <= 4) {
const char *data = rawItem.constData();
if(nbytes < 4 || (data[0]!=0 || data[1]!=0 || data[2]!=0 || data[3]!=0)) {
- disconnectDevice(dev, tr("Client sent corrupted compressed data!"));
+ disconnectDevice(dev, tr("Peer sent corrupted compressed data!"));
return false;
}
}
}
if(!item.isValid()) {
- disconnectDevice(dev, tr("Client sent corrupt data: unable to load QVariant!"));
+ disconnectDevice(dev, tr("Peer sent corrupt data: unable to load QVariant!"));
return false;
}