diff options
| author | Glenn Smith <glenn@vector35.com> | 2020-08-21 14:24:01 -0400 |
|---|---|---|
| committer | Glenn Smith <glenn@vector35.com> | 2020-09-14 17:24:08 -0400 |
| commit | 33e31719d37deed58cfe709bf475b80fece8c34a (patch) | |
| tree | 77850624b400089f164ed48c879240f72b9d16f3 /binaryninjaapi.h | |
| parent | 1acc58d472470f96f12ac4dfc78dc221775d18d3 (diff) | |
Custom request types and data transfer for DownloadProvider
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 5be335bf..0348c52b 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -4735,13 +4735,24 @@ __attribute__ ((format (printf, 1, 2))) static void DestroyInstanceCallback(void* ctxt); static int PerformRequestCallback(void* ctxt, const char* url); + static int PerformCustomRequestCallback(void* ctxt, const char* method, const char* url, uint64_t headerCount, const char* const* headerKeys, const char* const* headerValues, BNDownloadInstanceResponse** response); + static void PerformFreeResponse(void* ctxt, BNDownloadInstanceResponse* response); virtual void DestroyInstance(); public: + struct Response + { + uint16_t statusCode; + std::unordered_map<std::string, std::string> headers; + }; + virtual int PerformRequest(const std::string& url) = 0; + virtual int PerformCustomRequest(const std::string& method, const std::string& url, const std::unordered_map<std::string, std::string>& headers, Response& response) = 0; int PerformRequest(const std::string& url, BNDownloadInstanceOutputCallbacks* callbacks); + int PerformCustomRequest(const std::string& method, const std::string& url, const std::unordered_map<std::string, std::string>& headers, Response& response, BNDownloadInstanceInputOutputCallbacks* callbacks); + uint64_t ReadDataCallback(uint8_t* data, uint64_t len); uint64_t WriteDataCallback(uint8_t* data, uint64_t len); bool NotifyProgressCallback(uint64_t progress, uint64_t total); void SetError(const std::string& error); @@ -4755,6 +4766,7 @@ __attribute__ ((format (printf, 1, 2))) virtual ~CoreDownloadInstance() {}; virtual int PerformRequest(const std::string& url) override; + virtual int PerformCustomRequest(const std::string& method, const std::string& url, const std::unordered_map<std::string, std::string>& headers, DownloadInstance::Response& response) override; }; class DownloadProvider: public StaticCoreRefCountObject<BNDownloadProvider> |
