void DatagramTransport<T, U>::receiveDatagram(const uint8_t* buffer, size_t nBytesReceived, const boost::system::error_code& error) { if (error) return processErrorCode(error); NFD_LOG_FACE_TRACE("Received: " << nBytesReceived << " bytes from " << m_sender); bool isOk = false; Block element; std::tie(isOk, element) = Block::fromBuffer(buffer, nBytesReceived); if (!isOk) { NFD_LOG_FACE_WARN("Failed to parse incoming packet from " << m_sender); // This packet won't extend the face lifetime return; } if (element.size() != nBytesReceived) { NFD_LOG_FACE_WARN("Received datagram size and decoded element size don't match"); // This packet won't extend the face lifetime return; } m_hasRecentlyReceived = true; Transport::Packet tp(std::move(element)); tp.remoteEndpoint = makeEndpointId(m_sender); this->receive(std::move(tp)); }
void DatagramTransport<T, U>::handleSend(const boost::system::error_code& error, size_t nBytesSent) { if (error) return processErrorCode(error); NFD_LOG_FACE_TRACE("Successfully sent: " << nBytesSent << " bytes"); }
void WebSocketTransport::doSend(Transport::Packet&& packet) { NFD_LOG_FACE_TRACE(__func__); websocketpp::lib::error_code error; m_server.send(m_handle, packet.packet.wire(), packet.packet.size(), websocketpp::frame::opcode::binary, error); if (error) return processErrorCode(error); NFD_LOG_FACE_TRACE("Successfully sent: " << packet.packet.size() << " bytes"); }
void WebSocketTransport::sendPing() { NFD_LOG_FACE_TRACE(__func__); ++this->nOutPings; websocketpp::lib::error_code error; m_server.ping(m_handle, "NFD-WebSocket", error); if (error) return processErrorCode(error); this->schedulePing(); }