void P2pConnectionProxy::writeHandshake(const P2pMessage &message) { CORE_SYNC_DATA coreSync; LevinProtocol::decode(message.data, coreSync); if (m_context.isIncoming()) { // response COMMAND_HANDSHAKE::response res; res.node_data = m_node.getNodeData(); res.payload_data = coreSync; res.local_peerlist = m_node.getLocalPeerList(); m_context.writeMessage(makeReply(COMMAND_HANDSHAKE::ID, LevinProtocol::encode(res), LEVIN_PROTOCOL_RETCODE_SUCCESS)); m_node.tryPing(m_context); } else { // request COMMAND_HANDSHAKE::request req; req.node_data = m_node.getNodeData(); req.payload_data = coreSync; m_context.writeMessage(makeRequest(COMMAND_HANDSHAKE::ID, LevinProtocol::encode(req))); } }
QNetworkReply* MailNetworkManager::createRequest(Operation op, const QNetworkRequest& req, QIODevice* outgoingData) { QUrl url = req.url(); QString scheme = url.scheme(); QNetworkReply* reply = NULL; if (scheme == "cid") { if (op == GetOperation) { qDebug() <<"getting component for" <<url; GMimeObject* part = NULL; if (url.path() == "ROOT") { part = theMessage->getBody(); } else { part = theMessage->getRelatedPart(url.path()); } if (part) { reply = makeReply(req, part); } else { qDebug() <<url <<"not found"; reply = StaticHTTPReply::notFound(req); } } else { qDebug() <<"operation" <<op <<"not supported for CID URLs"; reply = StaticHTTPReply::denied(op, req); } } else if (f_remoteEnabled && (url.scheme() == "http" || url.scheme() == "https")) { qDebug() <<"delegating request for" <<url; return QNetworkAccessManager::createRequest(op, req, outgoingData); } else { qDebug() <<"denying remote request for" <<url; reply = StaticHTTPReply::denied(op, req); emit blockedRequest(req); } connect(reply, SIGNAL(finished()), SLOT(replyFinished())); return reply; }