summaryrefslogtreecommitdiffstats
path: root/signet/protocol/ConnectMediator.cpp
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2008-11-06 21:44:01 +0000
committerBen Boeckel <MathStuf@gmail.com>2008-11-06 21:44:01 +0000
commit000d51b2561f7caf15af56b1dd806c8d04d20e22 (patch)
treee7d36c3d6033162f7fa41ea6ce9718167928f7c9 /signet/protocol/ConnectMediator.cpp
parent82a41d5c078a993a62e008e9379fe1a1a3f26721 (diff)
downloadsigen-000d51b2561f7caf15af56b1dd806c8d04d20e22.tar.gz
sigen-000d51b2561f7caf15af56b1dd806c8d04d20e22.tar.xz
sigen-000d51b2561f7caf15af56b1dd806c8d04d20e22.zip
[FIX] qmake for signet updated
[FIX] All packets are transported with receiver information git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@306 6ecfd1a5-f3ed-3746-8530-beee90d26b22
Diffstat (limited to 'signet/protocol/ConnectMediator.cpp')
-rw-r--r--signet/protocol/ConnectMediator.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/signet/protocol/ConnectMediator.cpp b/signet/protocol/ConnectMediator.cpp
index 5610281a..5fb09789 100644
--- a/signet/protocol/ConnectMediator.cpp
+++ b/signet/protocol/ConnectMediator.cpp
@@ -24,8 +24,9 @@
// Qt includes
#include <QtNetwork/QTcpSocket>
-Signet::Protocol::ConnectMediator::ConnectMediator(QTcpSocket* socket, Side side) :
+Signet::Protocol::ConnectMediator::ConnectMediator(QTcpSocket* socket, Side side, const QStringList& receivers) :
m_side(side),
+ m_receivers(receivers),
m_error(NoError),
m_socket(socket)
{
@@ -46,19 +47,22 @@ Signet::Protocol::ConnectMediator::Error Signet::Protocol::ConnectMediator::repl
return SideError;
recvAck();
if (m_error != NoError)
+ {
+ failure();
return m_error;
+ }
sendAck();
return m_error;
}
void Signet::Protocol::ConnectMediator::init()
{
- PacketMaker::makeConnection(m_socket);
+ PacketMaker::makeConnection(m_socket, m_receivers);
}
void Signet::Protocol::ConnectMediator::sendAck()
{
- PacketMaker::ack(m_socket);
+ PacketMaker::ack(m_socket, m_receivers);
}
void Signet::Protocol::ConnectMediator::recvAck()
@@ -66,9 +70,19 @@ void Signet::Protocol::ConnectMediator::recvAck()
Packet packet = PacketMaker::unwrap(m_socket);
if (packet.isValid())
{
- if (packet.type() != Packet::Acknowledge)
- m_error = UnexpectedError;
+ if (packet.receivers() == m_receivers)
+ {
+ if (packet.type() != Packet::Acknowledge)
+ m_error = UnexpectedError;
+ }
+ else
+ m_error = ReceiverError;
}
else
m_error = SocketError;
}
+
+void Signet::Protocol::ConnectMediator::failure()
+{
+ PacketMaker::deny(m_socket, m_receivers);
+}