diff options
Diffstat (limited to 'sappeer.cc')
-rw-r--r-- | sappeer.cc | 42 |
1 files changed, 21 insertions, 21 deletions
@@ -72,8 +72,8 @@ SAPConnection * SAPPeer::createServiceConnection(const QString &profile, const Q _sessions.insert(sessionId, socket); } - writeToSession(SAProtocol::defaultSessionId, - SAProtocol::packServiceConnectionRequestFrame(request)); + writeDataToSession(SAProtocol::defaultSessionId, + SAProtocol::packServiceConnectionRequestFrame(request)); return conn; } @@ -98,22 +98,22 @@ CapabilityPeer *SAPPeer::capabilityPeer() return findChild<CapabilityPeer*>(); } -bool SAPPeer::writeToSession(int session, const QByteArray &data) +void SAPPeer::writeDataToSession(int session, const QByteArray &data) { - if (session == SAProtocol::defaultSessionId) { - // Session is default (always open) or already open - sendFrame(SAProtocol::packFrame(session, data)); - return true; - } else { - SAPSocket *socket = _sessions.value(session, 0); - if (socket && socket->isOpen()) { - sendFrame(SAProtocol::packFrame(session, data)); - return true; - } else { - qWarning() << "Session" << session << "not open yet"; - return false; - } - } + sendFrame(SAProtocol::packFrame(session, data, SAProtocol::FrameData)); +} + +void SAPPeer::writeControlToSession(int session, const QByteArray &data) +{ + sendFrame(SAProtocol::packFrame(session, data, SAProtocol::FrameControl)); +} + +void SAPPeer::writeAckToSession(int session, int seqNum) +{ + SAProtocol::ControlFrame frame; + frame.type = SAProtocol::ControlFrameBlockAck; + frame.seqNum = seqNum; + writeControlToSession(session, SAProtocol::packControlFrame(frame)); } void SAPPeer::acceptServiceConnection(SAPConnectionRequest *connReq, int statusCode) @@ -133,8 +133,8 @@ void SAPPeer::acceptServiceConnection(SAPConnectionRequest *connReq, int statusC qDebug() << "Accepting service conection with status" << statusCode; - writeToSession(SAProtocol::defaultSessionId, - SAProtocol::packServiceConnectionResponseFrame(resp)); + writeDataToSession(SAProtocol::defaultSessionId, + SAProtocol::packServiceConnectionResponseFrame(resp)); if (statusCode == 0) { foreach (SAPSocket *socket, conn->sockets()) { @@ -243,8 +243,8 @@ void SAPPeer::handleDefaultSessionMessage(const QByteArray &message) resp.sessions.push_back(s.sessionId); } - writeToSession(SAProtocol::defaultSessionId, - SAProtocol::packServiceConnectionResponseFrame(resp)); + writeDataToSession(SAProtocol::defaultSessionId, + SAProtocol::packServiceConnectionResponseFrame(resp)); return; } |