From 3e27f8d5a756a454b88865c0630fe73ce6d79761 Mon Sep 17 00:00:00 2001 From: Leorize Date: Fri, 17 Jul 2020 22:58:55 -0500 Subject: [PATCH] libbnetservices: BUrlResult is no longer a BArchivable The switch to make BUrlResult serializable was debuted in f9e1854f198d4200f21a9cbe29fdfb0fabbe192f with the rationale is that BHttpRequest auto-redirection might cause the headers to become obsolete by the time a client process the BMessage received from BUrlProtocolDispatchingListener. With the change to BHttpRequest to not notify listeners when auto-redirection is enabled, this is no longer the case and the serialization code can go away now. This simplifies BUrlResult and its subclasses, and gain us some performance for clients using BUrlProtocolDispatchingListener as the result object no longer has to be serialized. This also change the ABI of BUrlProtocolListener::HeadersReceived to no longer passing a BUrlResult. Additionally, BUrlResult and BHttpResult now express the size of the content as an off_t, thus allowing results larger than 4 GB. Change-Id: I9dd29a8b26fdd9aa8e5bbad8d1728084f136312d Reviewed-on: https://review.haiku-os.org/c/haiku/+/3082 Reviewed-by: Adrien Destugues --- docs/user/netservices/UrlProtocolListener.dox | 4 +- headers/private/netservices/HttpResult.h | 12 ++- .../UrlProtocolDispatchingListener.h | 4 + .../private/netservices/UrlProtocolListener.h | 4 + headers/private/netservices/UrlResult.h | 39 ++++++--- .../netservices/UrlSynchronousRequest.h | 4 + .../plugins/http_streamer/HTTPMediaIO.cpp | 2 +- .../haikudepot/server/WebAppInterface.cpp | 2 +- .../util/ToFileUrlProtocolListener.cpp | 6 +- .../util/ToFileUrlProtocolListener.h | 3 +- .../UrlResult_Deprecated.cpp | 85 +++++++++++++++++++ .../network/libnetservices/DataRequest.cpp | 4 + .../network/libnetservices/FileRequest.cpp | 8 ++ .../network/libnetservices/GopherRequest.cpp | 4 + .../network/libnetservices/HttpRequest.cpp | 4 + .../network/libnetservices/HttpResult.cpp | 37 ++++++++ src/kits/network/libnetservices/JamCommon | 3 +- .../UrlProtocolAsynchronousListener.cpp | 5 ++ .../UrlProtocolDispatchingListener.cpp | 11 +++ .../libnetservices/UrlProtocolListener.cpp | 9 ++ src/kits/network/libnetservices/UrlResult.cpp | 41 +-------- .../libnetservices/UrlSynchronousRequest.cpp | 10 +++ src/tests/kits/net/service/HttpTest.cpp | 5 +- 23 files changed, 242 insertions(+), 64 deletions(-) create mode 100644 src/kits/network/libnetapi_deprecated/UrlResult_Deprecated.cpp diff --git a/docs/user/netservices/UrlProtocolListener.dox b/docs/user/netservices/UrlProtocolListener.dox index abd48048a4..25c4c1e002 100644 --- a/docs/user/netservices/UrlProtocolListener.dox +++ b/docs/user/netservices/UrlProtocolListener.dox @@ -103,15 +103,13 @@ */ /*! - \fn virtual void BUrlProtocolListener::HeadersReceived(BUrlRequest* caller, - const BUrlResult& result); + \fn virtual void BUrlProtocolListener::HeadersReceived(BUrlRequest* caller) \brief Called when all of the server response metadata (such as headers) have been read and parsed. \b Frequency: Once \param caller The BUrlRequest that invoked this callback. - \param result The BUrlResult associated with the request. */ /*! diff --git a/headers/private/netservices/HttpResult.h b/headers/private/netservices/HttpResult.h index cc79362018..9396c500b9 100644 --- a/headers/private/netservices/HttpResult.h +++ b/headers/private/netservices/HttpResult.h @@ -25,10 +25,12 @@ class BUrlRequest; class BHttpResult: public BUrlResult { friend class BHttpRequest; - + public: BHttpResult(const BUrl& url); +#ifdef LIBNETAPI_DEPRECATED BHttpResult(BMessage*); +#endif BHttpResult(const BHttpResult& other); ~BHttpResult(); @@ -38,7 +40,11 @@ public: // Result parameters access const BUrl& Url() const; BString ContentType() const; +#ifdef LIBNETAPI_DEPRECATED size_t Length() const; +#else + off_t Length() const; +#endif // HTTP-Specific stuff const BHttpHeaders& Headers() const; @@ -51,11 +57,13 @@ public: // Overloaded members BHttpResult& operator=(const BHttpResult& other); +#ifdef LIBNETAPI_DEPRECATED virtual status_t Archive(BMessage*, bool) const; static BArchivable* Instantiate(BMessage*); +#endif private: BUrl fUrl; - + BHttpHeaders fHeaders; int32 fStatusCode; BString fStatusString; diff --git a/headers/private/netservices/UrlProtocolDispatchingListener.h b/headers/private/netservices/UrlProtocolDispatchingListener.h index 768e6a6473..6f32343434 100644 --- a/headers/private/netservices/UrlProtocolDispatchingListener.h +++ b/headers/private/netservices/UrlProtocolDispatchingListener.h @@ -49,8 +49,12 @@ public: virtual void HostnameResolved(BUrlRequest* caller, const char* ip); virtual void ResponseStarted(BUrlRequest* caller); +#ifdef LIBNETAPI_DEPRECATED virtual void HeadersReceived(BUrlRequest* caller, const BUrlResult& result); +#else + virtual void HeadersReceived(BUrlRequest* caller); +#endif virtual void DataReceived(BUrlRequest* caller, const char* data, off_t position, ssize_t size); diff --git a/headers/private/netservices/UrlProtocolListener.h b/headers/private/netservices/UrlProtocolListener.h index 1870490ea7..68a5892e15 100644 --- a/headers/private/netservices/UrlProtocolListener.h +++ b/headers/private/netservices/UrlProtocolListener.h @@ -39,8 +39,12 @@ public: virtual void HostnameResolved(BUrlRequest* caller, const char* ip); virtual void ResponseStarted(BUrlRequest* caller); +#ifdef LIBNETAPI_DEPRECATED virtual void HeadersReceived(BUrlRequest* caller, const BUrlResult& result); +#else + virtual void HeadersReceived(BUrlRequest* caller); +#endif virtual void DataReceived(BUrlRequest* caller, const char* data, off_t position, ssize_t size); diff --git a/headers/private/netservices/UrlResult.h b/headers/private/netservices/UrlResult.h index 594b277256..386a1ef7b9 100644 --- a/headers/private/netservices/UrlResult.h +++ b/headers/private/netservices/UrlResult.h @@ -6,15 +6,12 @@ #define _B_URL_RESULT_H_ -#include #include -#ifndef LIBNETAPI_DEPRECATED -namespace BPrivate { +#ifdef LIBNETAPI_DEPRECATED +#include -namespace Network { -#endif class BUrlResult: public BArchivable { public: @@ -37,10 +34,32 @@ private: size_t fLength; }; -#ifndef LIBNETAPI_DEPRECATED -} // namespace Network +#else -} // namespace BPrivate -#endif +namespace BPrivate { -#endif +namespace Network { + +class BUrlResult { +public: + BUrlResult(); + virtual ~BUrlResult(); + + void SetContentType(BString contentType); + void SetLength(off_t length); + + virtual BString ContentType() const; + virtual off_t Length() const; + +private: + BString fContentType; + off_t fLength; +}; + +} + +} + +#endif // LIBNETAPI_DEPRECATED + +#endif // _B_URL_RESULT_H_ diff --git a/headers/private/netservices/UrlSynchronousRequest.h b/headers/private/netservices/UrlSynchronousRequest.h index 1a56b11d0c..b9f937af1c 100644 --- a/headers/private/netservices/UrlSynchronousRequest.h +++ b/headers/private/netservices/UrlSynchronousRequest.h @@ -30,8 +30,12 @@ public: virtual void HostnameResolved(BUrlRequest* caller, const char* ip); virtual void ResponseStarted(BUrlRequest* caller); +#ifdef LIBNETAPI_DEPRECATED virtual void HeadersReceived(BUrlRequest* caller, const BUrlResult& result); +#else + virtual void HeadersReceived(BUrlRequest* caller); +#endif virtual void DataReceived(BUrlRequest* caller, const char* data, off_t position, ssize_t size); diff --git a/src/add-ons/media/plugins/http_streamer/HTTPMediaIO.cpp b/src/add-ons/media/plugins/http_streamer/HTTPMediaIO.cpp index fd42b94013..aa352ead5b 100644 --- a/src/add-ons/media/plugins/http_streamer/HTTPMediaIO.cpp +++ b/src/add-ons/media/plugins/http_streamer/HTTPMediaIO.cpp @@ -49,7 +49,7 @@ public: fRunning = true; } - void HeadersReceived(BUrlRequest* request, const BUrlResult& result) + void HeadersReceived(BUrlRequest* request) { fAdapterIO->UpdateSize(); } diff --git a/src/apps/haikudepot/server/WebAppInterface.cpp b/src/apps/haikudepot/server/WebAppInterface.cpp index 8622a57437..1001449a41 100644 --- a/src/apps/haikudepot/server/WebAppInterface.cpp +++ b/src/apps/haikudepot/server/WebAppInterface.cpp @@ -58,7 +58,7 @@ public: { } - virtual void HeadersReceived(BUrlRequest* caller, const BUrlResult& result) + virtual void HeadersReceived(BUrlRequest* caller) { } diff --git a/src/apps/haikudepot/util/ToFileUrlProtocolListener.cpp b/src/apps/haikudepot/util/ToFileUrlProtocolListener.cpp index f85e19150c..1ed7b8a943 100644 --- a/src/apps/haikudepot/util/ToFileUrlProtocolListener.cpp +++ b/src/apps/haikudepot/util/ToFileUrlProtocolListener.cpp @@ -51,14 +51,14 @@ ToFileUrlProtocolListener::ResponseStarted(BUrlRequest* caller) void -ToFileUrlProtocolListener::HeadersReceived(BUrlRequest* caller, - const BUrlResult& result) +ToFileUrlProtocolListener::HeadersReceived(BUrlRequest* caller) { // check that the status code is success. Only if it is successful // should the payload be streamed to the file. - const BHttpResult& httpResult = dynamic_cast(result); + const BHttpResult& httpResult = dynamic_cast( + caller->Result()); int32 statusCode = httpResult.StatusCode(); if (!BHttpRequest::IsSuccessStatusCode(statusCode)) { diff --git a/src/apps/haikudepot/util/ToFileUrlProtocolListener.h b/src/apps/haikudepot/util/ToFileUrlProtocolListener.h index 3cc7d37742..fd94f59566 100644 --- a/src/apps/haikudepot/util/ToFileUrlProtocolListener.h +++ b/src/apps/haikudepot/util/ToFileUrlProtocolListener.h @@ -25,8 +25,7 @@ public: void HostnameResolved(BUrlRequest* caller, const char* ip); void ResponseStarted(BUrlRequest* caller); - void HeadersReceived(BUrlRequest* caller, - const BUrlResult& result); + void HeadersReceived(BUrlRequest* caller); void DataReceived(BUrlRequest* caller, const char* data, off_t position, ssize_t size); diff --git a/src/kits/network/libnetapi_deprecated/UrlResult_Deprecated.cpp b/src/kits/network/libnetapi_deprecated/UrlResult_Deprecated.cpp new file mode 100644 index 0000000000..454c71e397 --- /dev/null +++ b/src/kits/network/libnetapi_deprecated/UrlResult_Deprecated.cpp @@ -0,0 +1,85 @@ +/* + * Copyright 2013-2017 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Adrien Destugues, pulkomandy@pulkomandy.tk + */ + + +#include + + +BUrlResult::BUrlResult() + : + BArchivable(), + fContentType(), + fLength(0) +{ +} + + +BUrlResult::BUrlResult(BMessage* archive) + : + BArchivable(archive) +{ + fContentType = archive->FindString("ContentType"); + fLength = archive->FindInt32("Length"); +} + + +BUrlResult::~BUrlResult() +{ +} + + +status_t +BUrlResult::Archive(BMessage* archive, bool deep) const +{ + status_t result = BArchivable::Archive(archive, deep); + + if (result != B_OK) + return result; + + archive->AddString("ContentType", fContentType); + archive->AddInt32("Length", fLength); + + return B_OK; +} + + +void +BUrlResult::SetContentType(BString contentType) +{ + fContentType = contentType; +} + + +void +BUrlResult::SetLength(size_t length) +{ + fLength = length; +} + + +BString +BUrlResult::ContentType() const +{ + return fContentType; +} + + +size_t +BUrlResult::Length() const +{ + return fLength; +} + + +/*static*/ BArchivable* +BUrlResult::Instantiate(BMessage* archive) +{ + if (!validate_instantiation(archive, "BUrlResult")) + return NULL; + return new BUrlResult(archive); +} diff --git a/src/kits/network/libnetservices/DataRequest.cpp b/src/kits/network/libnetservices/DataRequest.cpp index 79583d7283..bbac28f887 100644 --- a/src/kits/network/libnetservices/DataRequest.cpp +++ b/src/kits/network/libnetservices/DataRequest.cpp @@ -123,7 +123,11 @@ BDataRequest::_ProtocolLoop() fResult.SetLength(length); if (fListener != NULL) { +#ifdef LIBNETAPI_DEPRECATED fListener->HeadersReceived(this, fResult); +#else + fListener->HeadersReceived(this); +#endif if (length > 0) { fListener->DataReceived(this, payload, 0, length); fListener->DownloadProgress(this, length, length); diff --git a/src/kits/network/libnetservices/FileRequest.cpp b/src/kits/network/libnetservices/FileRequest.cpp index 43599f88e3..81fa5c670d 100644 --- a/src/kits/network/libnetservices/FileRequest.cpp +++ b/src/kits/network/libnetservices/FileRequest.cpp @@ -81,7 +81,11 @@ BFileRequest::_ProtocolLoop() return error; fResult.SetLength(size); +#ifdef LIBNETAPI_DEPRECATED fListener->HeadersReceived(this, fResult); +#else + fListener->HeadersReceived(this); +#endif ssize_t chunkSize = 0; char chunk[4096]; @@ -124,7 +128,11 @@ BFileRequest::_ProtocolLoop() if (fListener != NULL) { fListener->ConnectionOpened(this); +#ifdef LIBNETAPI_DEPRECATED fListener->HeadersReceived(this, fResult); +#else + fListener->HeadersReceived(this); +#endif // Add a parent directory entry. fListener->DataReceived(this, "+/,\t..\r\n", transferredSize, 8); diff --git a/src/kits/network/libnetservices/GopherRequest.cpp b/src/kits/network/libnetservices/GopherRequest.cpp index 8713192ee8..2c3d9f2764 100644 --- a/src/kits/network/libnetservices/GopherRequest.cpp +++ b/src/kits/network/libnetservices/GopherRequest.cpp @@ -350,7 +350,11 @@ BGopherRequest::_ProtocolLoop() // we don't really have headers but well... //! ProtocolHook:HeadersReceived if (fListener != NULL) +#ifdef LIBNETAPI_DEPRECATED fListener->HeadersReceived(this, fResult); +#else + fListener->HeadersReceived(this); +#endif } if (_NeedsParsing()) diff --git a/src/kits/network/libnetservices/HttpRequest.cpp b/src/kits/network/libnetservices/HttpRequest.cpp index 36471f6f61..f8d372b6b0 100644 --- a/src/kits/network/libnetservices/HttpRequest.cpp +++ b/src/kits/network/libnetservices/HttpRequest.cpp @@ -672,7 +672,11 @@ BHttpRequest::_MakeRequest() //! ProtocolHook:HeadersReceived if (fListener != NULL && !disableListener) +#ifdef LIBNETAPI_DEPRECATED fListener->HeadersReceived(this, fResult); +#else + fListener->HeadersReceived(this); +#endif if (BString(fHeaders["Transfer-Encoding"]) == "chunked") diff --git a/src/kits/network/libnetservices/HttpResult.cpp b/src/kits/network/libnetservices/HttpResult.cpp index ef8bd6fa7b..85185eafa4 100644 --- a/src/kits/network/libnetservices/HttpResult.cpp +++ b/src/kits/network/libnetservices/HttpResult.cpp @@ -29,6 +29,7 @@ BHttpResult::BHttpResult(const BUrl& url) } +#ifdef LIBNETAPI_DEPRECATED BHttpResult::BHttpResult(BMessage* archive) : BUrlResult(archive), @@ -42,6 +43,7 @@ BHttpResult::BHttpResult(BMessage* archive) archive->FindMessage("http:headers", &headers); fHeaders.PopulateFromArchive(&headers); } +#endif BHttpResult::BHttpResult(const BHttpResult& other) @@ -86,6 +88,7 @@ BHttpResult::ContentType() const } +#ifdef LIBNETAPI_DEPRECATED size_t BHttpResult::Length() const { @@ -115,6 +118,38 @@ BHttpResult::Length() const return result; } +#else + +off_t +BHttpResult::Length() const +{ + const char* length = Headers()["Content-Length"]; + if (length == NULL) + return 0; + + /* NOTE: Not RFC7230 compliant: + * - If Content-Length is a list, all values must be checked and verified + * to be duplicates of each other, but this is currently not supported. + */ + off_t result = 0; + /* strtoull() will ignore a prefixed sign, so we verify that there aren't + * any before continuing (RFC7230 only permits digits). + * + * We can check length[0] directly because header values are trimmed by + * HttpHeader beforehand. */ + if (length[0] != '-' && length[0] != '+') { + errno = 0; + char *endptr = NULL; + result = strtoull(length, &endptr, 10); + /* ERANGE will be signalled if the result is too large (which can + * happen), in that case, return 0. */ + if (errno != 0 || *endptr != '\0') + result = 0; + } + return result; +} +#endif // BNETAPI_DEPRECATED + const BHttpHeaders& BHttpResult::Headers() const @@ -165,6 +200,7 @@ BHttpResult::operator=(const BHttpResult& other) } +#ifdef LIBNETAPI_DEPRECATED status_t BHttpResult::Archive(BMessage* target, bool deep) const { @@ -192,3 +228,4 @@ BHttpResult::Instantiate(BMessage* archive) return new BHttpResult(archive); } +#endif diff --git a/src/kits/network/libnetservices/JamCommon b/src/kits/network/libnetservices/JamCommon index 1233f81026..2f92c299f3 100644 --- a/src/kits/network/libnetservices/JamCommon +++ b/src/kits/network/libnetservices/JamCommon @@ -32,7 +32,6 @@ local sources = UrlProtocolListener.cpp UrlProtocolRoster.cpp UrlRequest.cpp - UrlResult.cpp UrlSynchronousRequest.cpp ; @@ -51,12 +50,14 @@ for architectureObject in [ MultiArchSubDirSetup ] { MergeObject netservices.o : $(sources) + UrlResult_Deprecated.cpp : <$(architecture)>libshared.a ; } else { StaticLibrary [ MultiArchDefaultGristFiles libnetservices.a ] : $(sources) Geolocation.cpp + UrlResult.cpp ; } diff --git a/src/kits/network/libnetservices/UrlProtocolAsynchronousListener.cpp b/src/kits/network/libnetservices/UrlProtocolAsynchronousListener.cpp index 2995b104ce..478bf8dd81 100644 --- a/src/kits/network/libnetservices/UrlProtocolAsynchronousListener.cpp +++ b/src/kits/network/libnetservices/UrlProtocolAsynchronousListener.cpp @@ -102,6 +102,7 @@ BUrlProtocolAsynchronousListener::MessageReceived(BMessage* message) ResponseStarted(caller); break; +#ifdef LIBNETAPI_DEPRECATED case B_URL_PROTOCOL_HEADERS_RECEIVED: { BMessage archive; @@ -115,7 +116,11 @@ BUrlProtocolAsynchronousListener::MessageReceived(BMessage* message) HeadersReceived(caller, *result); delete result; } +#else + case B_URL_PROTOCOL_HEADERS_RECEIVED: + HeadersReceived(caller); break; +#endif case B_URL_PROTOCOL_DATA_RECEIVED: { diff --git a/src/kits/network/libnetservices/UrlProtocolDispatchingListener.cpp b/src/kits/network/libnetservices/UrlProtocolDispatchingListener.cpp index 7fd279c9e6..8561ff5024 100644 --- a/src/kits/network/libnetservices/UrlProtocolDispatchingListener.cpp +++ b/src/kits/network/libnetservices/UrlProtocolDispatchingListener.cpp @@ -72,6 +72,7 @@ BUrlProtocolDispatchingListener::ResponseStarted(BUrlRequest* caller) } +#ifdef LIBNETAPI_DEPRECATED void BUrlProtocolDispatchingListener::HeadersReceived(BUrlRequest* caller, const BUrlResult& result) @@ -87,6 +88,16 @@ BUrlProtocolDispatchingListener::HeadersReceived(BUrlRequest* caller, _SendMessage(&message, B_URL_PROTOCOL_HEADERS_RECEIVED, caller); } +#else + +void +BUrlProtocolDispatchingListener::HeadersReceived(BUrlRequest* caller) +{ + BMessage message(B_URL_PROTOCOL_NOTIFICATION); + _SendMessage(&message, B_URL_PROTOCOL_HEADERS_RECEIVED, caller); +} +#endif // LIBNETAPI_DEPRECATED + void BUrlProtocolDispatchingListener::DataReceived(BUrlRequest* caller, diff --git a/src/kits/network/libnetservices/UrlProtocolListener.cpp b/src/kits/network/libnetservices/UrlProtocolListener.cpp index fd953faa53..7fe7f71695 100644 --- a/src/kits/network/libnetservices/UrlProtocolListener.cpp +++ b/src/kits/network/libnetservices/UrlProtocolListener.cpp @@ -45,11 +45,20 @@ BUrlProtocolListener::ResponseStarted(BUrlRequest*) } +#ifdef LIBNETAPI_DEPRECATED void BUrlProtocolListener::HeadersReceived(BUrlRequest*, const BUrlResult& result) { } +#else + +void +BUrlProtocolListener::HeadersReceived(BUrlRequest*) +{ +} +#endif // LIBNETAPI_DEPRECATED + void BUrlProtocolListener::DataReceived(BUrlRequest*, const char*, off_t, ssize_t) diff --git a/src/kits/network/libnetservices/UrlResult.cpp b/src/kits/network/libnetservices/UrlResult.cpp index 49c70c1cef..ab59915452 100644 --- a/src/kits/network/libnetservices/UrlResult.cpp +++ b/src/kits/network/libnetservices/UrlResult.cpp @@ -10,48 +10,22 @@ #include -#ifndef LIBNETAPI_DEPRECATED using namespace BPrivate::Network; -#endif + BUrlResult::BUrlResult() : - BArchivable(), fContentType(), fLength(0) { } -BUrlResult::BUrlResult(BMessage* archive) - : - BArchivable(archive) -{ - fContentType = archive->FindString("ContentType"); - fLength = archive->FindInt32("Length"); -} - - BUrlResult::~BUrlResult() { } -status_t -BUrlResult::Archive(BMessage* archive, bool deep) const -{ - status_t result = BArchivable::Archive(archive, deep); - - if (result != B_OK) - return result; - - archive->AddString("ContentType", fContentType); - archive->AddInt32("Length", fLength); - - return B_OK; -} - - void BUrlResult::SetContentType(BString contentType) { @@ -60,7 +34,7 @@ BUrlResult::SetContentType(BString contentType) void -BUrlResult::SetLength(size_t length) +BUrlResult::SetLength(off_t length) { fLength = length; } @@ -73,17 +47,8 @@ BUrlResult::ContentType() const } -size_t +off_t BUrlResult::Length() const { return fLength; } - - -/*static*/ BArchivable* -BUrlResult::Instantiate(BMessage* archive) -{ - if (!validate_instantiation(archive, "BUrlResult")) - return NULL; - return new BUrlResult(archive); -} diff --git a/src/kits/network/libnetservices/UrlSynchronousRequest.cpp b/src/kits/network/libnetservices/UrlSynchronousRequest.cpp index 3306e6454f..a5fb25a918 100644 --- a/src/kits/network/libnetservices/UrlSynchronousRequest.cpp +++ b/src/kits/network/libnetservices/UrlSynchronousRequest.cpp @@ -73,12 +73,22 @@ BUrlSynchronousRequest::ResponseStarted(BUrlRequest*) } +#ifdef LIBNETAPI_DEPRECATED void BUrlSynchronousRequest::HeadersReceived(BUrlRequest*, const BUrlResult& result) { PRINT(("SynchronousRequest::HeadersReceived()\n")); } +#else + +void +BUrlSynchronousRequest::HeadersReceived(BUrlRequest*) +{ + PRINT(("SynchronousRequest::HeadersReceived()\n")); +} +#endif // LIBNETAPI_DEPRECATED + void BUrlSynchronousRequest::DataReceived(BUrlRequest*, const char*, diff --git a/src/tests/kits/net/service/HttpTest.cpp b/src/tests/kits/net/service/HttpTest.cpp index 47358af09b..11e251cf77 100644 --- a/src/tests/kits/net/service/HttpTest.cpp +++ b/src/tests/kits/net/service/HttpTest.cpp @@ -58,11 +58,10 @@ public: } virtual void HeadersReceived( - BUrlRequest* caller, - const BUrlResult& result) + BUrlRequest* caller) { const BHttpResult& http_result - = dynamic_cast(result); + = dynamic_cast(caller->Result()); const BHttpHeaders& headers = http_result.Headers(); for (int32 i = 0; i < headers.CountHeaders(); ++i) {