diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2008-11-06 21:44:01 +0000 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2008-11-06 21:44:01 +0000 |
commit | 000d51b2561f7caf15af56b1dd806c8d04d20e22 (patch) | |
tree | e7d36c3d6033162f7fa41ea6ce9718167928f7c9 /signet/protocol/ConnectMediator.cpp | |
parent | 82a41d5c078a993a62e008e9379fe1a1a3f26721 (diff) | |
download | sigen-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.cpp | 24 |
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); +} |