remove SharedNodePointer from some packet callbacks

This commit is contained in:
Stephen Birarda 2015-07-14 14:27:26 -07:00
parent fbd287472d
commit d617b71232
15 changed files with 43 additions and 59 deletions

View file

@ -210,7 +210,7 @@ void AssignmentClient::sendAssignmentRequest() {
} }
} }
void AssignmentClient::handleCreateAssignmentPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode, HifiSockAddr senderSockAddr) { void AssignmentClient::handleCreateAssignmentPacket(QSharedPointer<NLPacket> packet) {
qDebug() << "Received a PacketType::CreateAssignment - attempting to unpack."; qDebug() << "Received a PacketType::CreateAssignment - attempting to unpack.";
// construct the deployed assignment from the packet data // construct the deployed assignment from the packet data
@ -223,7 +223,7 @@ void AssignmentClient::handleCreateAssignmentPacket(QSharedPointer<NLPacket> pac
// switch our DomainHandler hostname and port to whoever sent us the assignment // switch our DomainHandler hostname and port to whoever sent us the assignment
nodeList->getDomainHandler().setSockAddr(senderSockAddr, _assignmentServerHostname); nodeList->getDomainHandler().setSockAddr(packet->getSenderSockAddr(), _assignmentServerHostname);
nodeList->getDomainHandler().setAssignmentUUID(_currentAssignment->getUUID()); nodeList->getDomainHandler().setAssignmentUUID(_currentAssignment->getUUID());
qDebug() << "Destination IP for assignment is" << nodeList->getDomainHandler().getIP().toString(); qDebug() << "Destination IP for assignment is" << nodeList->getDomainHandler().getIP().toString();
@ -261,7 +261,9 @@ void AssignmentClient::handleCreateAssignmentPacket(QSharedPointer<NLPacket> pac
} }
} }
void AssignmentClient::handleStopNodePacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode, HifiSockAddr senderSockAddr) { void AssignmentClient::handleStopNodePacket(QSharedPointer<NLPacket> packet) {
const HifiSockAddr& senderSockAddr = packet->getSenderSockAddr();
if (senderSockAddr.getAddress() == QHostAddress::LocalHost || if (senderSockAddr.getAddress() == QHostAddress::LocalHost ||
senderSockAddr.getAddress() == QHostAddress::LocalHostIPv6) { senderSockAddr.getAddress() == QHostAddress::LocalHostIPv6) {
qDebug() << "AssignmentClientMonitor at" << senderSockAddr << "requested stop via PacketType::StopNode."; qDebug() << "AssignmentClientMonitor at" << senderSockAddr << "requested stop via PacketType::StopNode.";

View file

@ -39,8 +39,8 @@ public slots:
void aboutToQuit(); void aboutToQuit();
private slots: private slots:
void handleCreateAssignmentPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode, HifiSockAddr senderSockAddr); void handleCreateAssignmentPacket(QSharedPointer<NLPacket> packet);
void handleStopNodePacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode, HifiSockAddr senderSockAddr); void handleStopNodePacket(QSharedPointer<NLPacket> packet);
private: private:
void setUpStatusToMonitor(); void setUpStatusToMonitor();

View file

@ -432,9 +432,8 @@ void AvatarMixer::handleAvatarBillboardPacket(QSharedPointer<NLPacket> packet, S
} }
} }
void AvatarMixer::handleKillAvatarPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode) { void AvatarMixer::handleKillAvatarPacket(QSharedPointer<NLPacket> packet) {
auto nodeList = DependencyManager::get<NodeList>(); DependencyManager::get<NodeList>()->processKillNode(*packet);
nodeList->processKillNode(*packet);
} }
void AvatarMixer::sendStatsPacket() { void AvatarMixer::sendStatsPacket() {

View file

@ -35,7 +35,7 @@ private slots:
void handleAvatarDataPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode); void handleAvatarDataPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode);
void handleAvatarIdentityPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode); void handleAvatarIdentityPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode);
void handleAvatarBillboardPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode); void handleAvatarBillboardPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode);
void handleKillAvatarPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode); void handleKillAvatarPacket(QSharedPointer<NLPacket> packet);
private: private:
void broadcastAvatarData(); void broadcastAvatarData();

View file

@ -26,9 +26,8 @@ EntityServer::EntityServer(NLPacket& packet) :
_entitySimulation(NULL) _entitySimulation(NULL)
{ {
auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver(); auto& packetReceiver = DependencyManager::get<NodeList>()->getPacketReceiver();
packetReceiver.registerListener(PacketType::EntityAdd, this, "handleEntityAddPacket"); packetReceiver.registerListenerForTypes({ PacketType::EntityAdd, PacketType::EntityEdit, PacketType::EntityErase },
packetReceiver.registerListener(PacketType::EntityEdit, this, "handleEntityEditPacket"); this, "handleEntityPacket");
packetReceiver.registerListener(PacketType::EntityErase, this, "handleEntityErasePacket");
} }
EntityServer::~EntityServer() { EntityServer::~EntityServer() {
@ -41,19 +40,7 @@ EntityServer::~EntityServer() {
tree->removeNewlyCreatedHook(this); tree->removeNewlyCreatedHook(this);
} }
void EntityServer::handleEntityAddPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode) { void EntityServer::handleEntityPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode) {
if (_octreeInboundPacketProcessor) {
_octreeInboundPacketProcessor->queueReceivedPacket(packet, senderNode);
}
}
void EntityServer::handleEntityEditPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode) {
if (_octreeInboundPacketProcessor) {
_octreeInboundPacketProcessor->queueReceivedPacket(packet, senderNode);
}
}
void EntityServer::handleEntityErasePacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode) {
if (_octreeInboundPacketProcessor) { if (_octreeInboundPacketProcessor) {
_octreeInboundPacketProcessor->queueReceivedPacket(packet, senderNode); _octreeInboundPacketProcessor->queueReceivedPacket(packet, senderNode);
} }

View file

@ -50,9 +50,7 @@ protected:
virtual Octree* createTree(); virtual Octree* createTree();
private slots: private slots:
void handleEntityAddPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode); void handleEntityPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode);
void handleEntityEditPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode);
void handleEntityErasePacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode);
private: private:
EntitySimulation* _entitySimulation; EntitySimulation* _entitySimulation;

View file

@ -1415,7 +1415,7 @@ void DomainServer::processICEPingReplyPacket(QSharedPointer<NLPacket> packet) {
void DomainServer::processNodeJSONStatsPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode) { void DomainServer::processNodeJSONStatsPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode) {
if (sendingNode->getLinkedData()) { if (sendingNode->getLinkedData()) {
reinterpret_cast<DomainServerNodeData*>(sendingNode->getLinkedData())->processJSONStatsPacket(*packet); dynamic_cast<DomainServerNodeData*>(sendingNode->getLinkedData())->processJSONStatsPacket(*packet);
} }
} }

View file

@ -3821,7 +3821,7 @@ void Application::domainChanged(const QString& domainHostname) {
_domainConnectionRefusals.clear(); _domainConnectionRefusals.clear();
} }
void Application::handleDomainConnectionDeniedPacket(QSharedPointer<NLPacket> packet, SharedNodePointer senderNode) { void Application::handleDomainConnectionDeniedPacket(QSharedPointer<NLPacket> packet) {
QDataStream packetStream(packet.data()); QDataStream packetStream(packet.data());
QString reason; QString reason;

View file

@ -447,7 +447,7 @@ public slots:
void notifyPacketVersionMismatch(); void notifyPacketVersionMismatch();
void handleDomainConnectionDeniedPacket(QSharedPointer<NLPacket>, SharedNodePointer senderNode); void handleDomainConnectionDeniedPacket(QSharedPointer<NLPacket> packet);
void cameraMenuChanged(); void cameraMenuChanged();

View file

@ -22,7 +22,7 @@ EntityEditPacketSender::EntityEditPacketSender() {
packetReceiver.registerListener(PacketType::EntityEditNack, this, "processEntityEditNackPacket"); packetReceiver.registerListener(PacketType::EntityEditNack, this, "processEntityEditNackPacket");
} }
void EntityEditPacketSender::processEntityEditNackPacket(QSharedPointer<NLPacket> packet, HifiSockAddr senderSockAddr) { void EntityEditPacketSender::processEntityEditNackPacket(QSharedPointer<NLPacket> packet) {
// if (!Menu::getInstance()->isOptionChecked(MenuOption::DisableNackPackets)) { // if (!Menu::getInstance()->isOptionChecked(MenuOption::DisableNackPackets)) {
processNackPacket(QByteArray::fromRawData(packet->getData(), packet->getSizeWithHeader())); processNackPacket(QByteArray::fromRawData(packet->getData(), packet->getSizeWithHeader()));
// } // }

View file

@ -32,7 +32,7 @@ public:
void queueEraseEntityMessage(const EntityItemID& entityItemID); void queueEraseEntityMessage(const EntityItemID& entityItemID);
void processEntityEditNackPacket(QSharedPointer<NLPacket> packet, HifiSockAddr senderSockAddr); void processEntityEditNackPacket(QSharedPointer<NLPacket> packet);
// My server type is the model server // My server type is the model server
virtual char getMyNodeType() const { return NodeType::EntityServer; } virtual char getMyNodeType() const { return NodeType::EntityServer; }

View file

@ -43,6 +43,7 @@ DomainHandler::DomainHandler(QObject* parent) :
packetReceiver.registerListener(PacketType::ICEServerPeerInformation, this, "processICEResponsePacket"); packetReceiver.registerListener(PacketType::ICEServerPeerInformation, this, "processICEResponsePacket");
packetReceiver.registerListener(PacketType::DomainServerRequireDTLS, this, "processDTLSRequirementPacket"); packetReceiver.registerListener(PacketType::DomainServerRequireDTLS, this, "processDTLSRequirementPacket");
packetReceiver.registerListener(PacketType::ICEPingReply, this, "processICEPingReplyPacket");
} }
void DomainHandler::clearConnectionInfo() { void DomainHandler::clearConnectionInfo() {
@ -286,6 +287,24 @@ void DomainHandler::settingsRequestFinished() {
settingsReply->deleteLater(); settingsReply->deleteLater();
} }
void DomainHandler::processICEPingReplyPacket(QSharedPointer<NLPacket> packet) {
const HifiSockAddr& senderSockAddr = packet->getSenderSockAddr();
qCDebug(networking) << "Received reply from domain-server on" << senderSockAddr;
if (getIP().isNull()) {
// for now we're unsafely assuming this came back from the domain
if (senderSockAddr == _icePeer.getLocalSocket()) {
qCDebug(networking) << "Connecting to domain using local socket";
activateICELocalSocket();
} else if (senderSockAddr == _icePeer.getPublicSocket()) {
qCDebug(networking) << "Conecting to domain using public socket";
activateICEPublicSocket();
} else {
qCDebug(networking) << "Reply does not match either local or public socket for domain. Will not connect.";
}
}
}
void DomainHandler::processDTLSRequirementPacket(QSharedPointer<NLPacket> dtlsRequirementPacket) { void DomainHandler::processDTLSRequirementPacket(QSharedPointer<NLPacket> dtlsRequirementPacket) {
// figure out the port that the DS wants us to use for us to talk to them with DTLS // figure out the port that the DS wants us to use for us to talk to them with DTLS
unsigned short dtlsPort; unsigned short dtlsPort;

View file

@ -71,9 +71,7 @@ public:
void requestDomainSettings(); void requestDomainSettings();
const QJsonObject& getSettingsObject() const { return _settingsObject; } const QJsonObject& getSettingsObject() const { return _settingsObject; }
void processDTLSRequirementPacket(QSharedPointer<NLPacket> dtlsRequirementPacket);
void processICEResponsePacket(QSharedPointer<NLPacket> icePacket);
void setPendingPath(const QString& pendingPath) { _pendingPath = pendingPath; } void setPendingPath(const QString& pendingPath) { _pendingPath = pendingPath; }
const QString& getPendingPath() { return _pendingPath; } const QString& getPendingPath() { return _pendingPath; }
void clearPendingPath() { _pendingPath.clear(); } void clearPendingPath() { _pendingPath.clear(); }
@ -85,6 +83,10 @@ public slots:
void setHostnameAndPort(const QString& hostname, quint16 port = DEFAULT_DOMAIN_SERVER_PORT); void setHostnameAndPort(const QString& hostname, quint16 port = DEFAULT_DOMAIN_SERVER_PORT);
void setIceServerHostnameAndID(const QString& iceServerHostname, const QUuid& id); void setIceServerHostnameAndID(const QString& iceServerHostname, const QUuid& id);
void processICEPingReplyPacket(QSharedPointer<NLPacket> packet);
void processDTLSRequirementPacket(QSharedPointer<NLPacket> dtlsRequirementPacket);
void processICEResponsePacket(QSharedPointer<NLPacket> icePacket);
private slots: private slots:
void completedHostnameLookup(const QHostInfo& hostInfo); void completedHostnameLookup(const QHostInfo& hostInfo);
void completedIceServerHostnameLookup(); void completedIceServerHostnameLookup();

View file

@ -93,12 +93,9 @@ NodeList::NodeList(char newOwnerType, unsigned short socketListenPort, unsigned
auto& packetReceiver = getPacketReceiver(); auto& packetReceiver = getPacketReceiver();
packetReceiver.registerListener(PacketType::DomainList, this, "processDomainServerList"); packetReceiver.registerListener(PacketType::DomainList, this, "processDomainServerList");
packetReceiver.registerListener(PacketType::DomainServerAddedNode, this, "processDomainServerAddedNode");
packetReceiver.registerListener(PacketType::DomainServerPathResponse, this, "processDomainServerPathQueryResponse");
packetReceiver.registerListener(PacketType::Ping, this, "processPingPacket"); packetReceiver.registerListener(PacketType::Ping, this, "processPingPacket");
packetReceiver.registerListener(PacketType::PingReply, this, "processPingReplyPacket"); packetReceiver.registerListener(PacketType::PingReply, this, "processPingReplyPacket");
packetReceiver.registerListener(PacketType::ICEPing, this, "processICEPingPacket"); packetReceiver.registerListener(PacketType::ICEPing, this, "processICEPingPacket");
packetReceiver.registerListener(PacketType::ICEPingReply, this, "processICEPingReplyPacket");
} }
qint64 NodeList::sendStats(const QJsonObject& statsObject, const HifiSockAddr& destination) { qint64 NodeList::sendStats(const QJsonObject& statsObject, const HifiSockAddr& destination) {
@ -190,25 +187,6 @@ void NodeList::processICEPingPacket(QSharedPointer<NLPacket> packet) {
sendPacket(std::move(replyPacket), packet->getSenderSockAddr()); sendPacket(std::move(replyPacket), packet->getSenderSockAddr());
} }
void NodeList::processICEPingReplyPacket(QSharedPointer<NLPacket> packet) {
const HifiSockAddr& senderSockAddr = packet->getSenderSockAddr();
qCDebug(networking) << "Received reply from domain-server on" << senderSockAddr;
if (_domainHandler.getIP().isNull()) {
// for now we're unsafely assuming this came back from the domain
if (senderSockAddr == _domainHandler.getICEPeer().getLocalSocket()) {
qCDebug(networking) << "Connecting to domain using local socket";
_domainHandler.activateICELocalSocket();
} else if (senderSockAddr == _domainHandler.getICEPeer().getPublicSocket()) {
qCDebug(networking) << "Conecting to domain using public socket";
_domainHandler.activateICEPublicSocket();
} else {
qCDebug(networking) << "Reply does not match either local or public socket for domain. Will not connect.";
}
}
}
void NodeList::reset() { void NodeList::reset() {
LimitedNodeList::reset(); LimitedNodeList::reset();

View file

@ -80,7 +80,6 @@ public slots:
void processPingReplyPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode); void processPingReplyPacket(QSharedPointer<NLPacket> packet, SharedNodePointer sendingNode);
void processICEPingPacket(QSharedPointer<NLPacket> packet); void processICEPingPacket(QSharedPointer<NLPacket> packet);
void processICEPingReplyPacket(QSharedPointer<NLPacket> packet);
signals: signals:
void limitOfSilentDomainCheckInsReached(); void limitOfSilentDomainCheckInsReached();
private slots: private slots: