diff options
Diffstat (limited to 'libtransport/src')
6 files changed, 30 insertions, 12 deletions
diff --git a/libtransport/src/hicn/transport/core/content_object.cc b/libtransport/src/hicn/transport/core/content_object.cc index 107ab8567..764d753cd 100644 --- a/libtransport/src/hicn/transport/core/content_object.cc +++ b/libtransport/src/hicn/transport/core/content_object.cc @@ -33,6 +33,7 @@ namespace core { ContentObject::ContentObject(const Name &name, Packet::Format format) : Packet(format) { + if (TRANSPORT_EXPECT_FALSE( hicn_data_set_name(format, packet_start_, name.getStructReference()) < 0)) { @@ -46,8 +47,13 @@ ContentObject::ContentObject(const Name &name, Packet::Format format) } } +#ifdef __ANDROID__ +ContentObject::ContentObject(hicn_format_t format) + : ContentObject(Name("0::0|0"), format) {} +#else ContentObject::ContentObject(hicn_format_t format) : ContentObject(Packet::base_name, format) {} +#endif ContentObject::ContentObject(const Name &name, hicn_format_t format, const uint8_t *payload, std::size_t size) diff --git a/libtransport/src/hicn/transport/core/interest.cc b/libtransport/src/hicn/transport/core/interest.cc index bd7b57422..e7d47d565 100644 --- a/libtransport/src/hicn/transport/core/interest.cc +++ b/libtransport/src/hicn/transport/core/interest.cc @@ -44,7 +44,12 @@ Interest::Interest(const Name &interest_name, Packet::Format format) } } + +#ifdef __ANDROID__ +Interest::Interest(hicn_format_t format) : Interest(Name("0::0|0"), format) {} +#else Interest::Interest(hicn_format_t format) : Interest(base_name, format) {} +#endif Interest::Interest(const uint8_t *buffer, std::size_t size) : Packet(buffer, size) { diff --git a/libtransport/src/hicn/transport/core/packet.cc b/libtransport/src/hicn/transport/core/packet.cc index 954266664..04ec74660 100644 --- a/libtransport/src/hicn/transport/core/packet.cc +++ b/libtransport/src/hicn/transport/core/packet.cc @@ -29,7 +29,7 @@ namespace transport { namespace core { -const core::Name Packet::base_name("0::0|0"); + const core::Name Packet::base_name("0::0|0"); Packet::Packet(Format format) : packet_(utils::MemBuf::create(getHeaderSizeFromFormat(format, 256)) @@ -37,7 +37,8 @@ Packet::Packet(Format format) packet_start_(reinterpret_cast<hicn_header_t *>(packet_->writableData())), header_head_(packet_.get()), payload_head_(nullptr), - format_(format) { + format_(format){ + if (hicn_packet_init_header(format, packet_start_) < 0) { throw errors::RuntimeException("Unexpected error initializing the packet."); } diff --git a/libtransport/src/hicn/transport/http/client_connection.cc b/libtransport/src/hicn/transport/http/client_connection.cc index fadf0ae44..32269d49d 100644 --- a/libtransport/src/hicn/transport/http/client_connection.cc +++ b/libtransport/src/hicn/transport/http/client_connection.cc @@ -47,15 +47,16 @@ HTTPClientConnection::HTTPClientConnection() HTTPClientConnection::RC HTTPClientConnection::get( const std::string &url, HTTPHeaders headers, HTTPPayload payload, - std::shared_ptr<HTTPResponse> response, ReadBytesCallback *callback) { - return sendRequest(url, HTTPMethod::GET, headers, payload, response, - callback); + std::shared_ptr<HTTPResponse> response, ReadBytesCallback *callback, + std::string ipv6_first_word) { + return sendRequest(url, HTTPMethod::GET, headers, payload, response, callback, + ipv6_first_word); } HTTPClientConnection::RC HTTPClientConnection::sendRequest( const std::string &url, HTTPMethod method, HTTPHeaders headers, HTTPPayload payload, std::shared_ptr<HTTPResponse> response, - ReadBytesCallback *callback) { + ReadBytesCallback *callback, std::string ipv6_first_word) { current_url_ = url; read_bytes_callback_ = callback; if (!response) { @@ -82,12 +83,13 @@ HTTPClientConnection::RC HTTPClientConnection::sendRequest( return response; }; - sendRequestGetReply(request, response); + sendRequestGetReply(request, response, ipv6_first_word); return return_code_; } void HTTPClientConnection::sendRequestGetReply( - const HTTPRequest &request, std::shared_ptr<HTTPResponse> &response) { + const HTTPRequest &request, std::shared_ptr<HTTPResponse> &response, + std::string &ipv6_first_word) { const std::string &request_string = request.getRequestString(); const std::string &locator = request.getLocator(); @@ -107,7 +109,7 @@ void HTTPClientConnection::sendRequestGetReply( // Factor hicn name using hash name_.str(""); - name_ << std::hex << http::default_values::ipv6_first_word << ":"; + name_ << ipv6_first_word << ":"; for (uint16_t *word = (uint16_t *)&locator_hash; std::size_t(word) < (std::size_t(&locator_hash) + sizeof(locator_hash)); diff --git a/libtransport/src/hicn/transport/http/client_connection.h b/libtransport/src/hicn/transport/http/client_connection.h index d0624702f..5bcf9c4c7 100644 --- a/libtransport/src/hicn/transport/http/client_connection.h +++ b/libtransport/src/hicn/transport/http/client_connection.h @@ -49,12 +49,14 @@ class HTTPClientConnection : public ConsumerSocket::ReadCallback { RC get(const std::string &url, HTTPHeaders headers = {}, HTTPPayload payload = {}, std::shared_ptr<HTTPResponse> response = nullptr, - ReadBytesCallback *callback = nullptr); + ReadBytesCallback *callback = nullptr, + std::string ipv6_first_word = "b001"); RC sendRequest(const std::string &url, HTTPMethod method, HTTPHeaders headers = {}, HTTPPayload payload = {}, std::shared_ptr<HTTPResponse> response = nullptr, - ReadBytesCallback *callback = nullptr); + ReadBytesCallback *callback = nullptr, + std::string ipv6_first_word = "b001"); HTTPResponse response(); @@ -68,7 +70,8 @@ class HTTPClientConnection : public ConsumerSocket::ReadCallback { private: void sendRequestGetReply(const HTTPRequest &request, - std::shared_ptr<HTTPResponse> &response); + std::shared_ptr<HTTPResponse> &response, + std::string &ipv6_first_word); bool verifyData(interface::ConsumerSocket &c, const core::ContentObject &contentObject); diff --git a/libtransport/src/hicn/transport/protocols/raaqm.cc b/libtransport/src/hicn/transport/protocols/raaqm.cc index 8960e08fa..574693c51 100644 --- a/libtransport/src/hicn/transport/protocols/raaqm.cc +++ b/libtransport/src/hicn/transport/protocols/raaqm.cc @@ -105,6 +105,7 @@ void RaaqmTransportProtocol::reset() { std::queue<Interest::Ptr> empty; std::swap(interest_to_retransmit_, empty); current_window_size_ = 1; + stats_.reset(); // Reset reassembly component BaseReassembly::reset(); |