mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	Merge pull request #13 from newton-blockchain/bugfix/adjust_code_to_microhttpd_changes
Add proper declarations for MHD result >=v0.9.71
This commit is contained in:
		
						commit
						f8e367628c
					
				
					 2 changed files with 17 additions and 4 deletions
				
			
		|  | @ -260,7 +260,7 @@ class CoreActor : public CoreActorInterface { | |||
|   CoreActor() { | ||||
|   } | ||||
| 
 | ||||
|   static int get_arg_iterate(void* cls, enum MHD_ValueKind kind, const char* key, const char* value) { | ||||
|   static MHD_RESULT get_arg_iterate(void* cls, enum MHD_ValueKind kind, const char* key, const char* value) { | ||||
|     auto X = static_cast<std::map<std::string, std::string>*>(cls); | ||||
|     if (key && value && std::strlen(key) > 0 && std::strlen(value) > 0) { | ||||
|       X->emplace(key, urldecode(td::Slice{value}, false)); | ||||
|  | @ -277,7 +277,7 @@ class CoreActor : public CoreActorInterface { | |||
|     ~HttpRequestExtra() { | ||||
|       MHD_destroy_post_processor(postprocessor); | ||||
|     } | ||||
|     static int iterate_post(void* coninfo_cls, enum MHD_ValueKind kind, const char* key, const char* filename, | ||||
|     static MHD_RESULT iterate_post(void* coninfo_cls, enum MHD_ValueKind kind, const char* key, const char* filename, | ||||
|                             const char* content_type, const char* transfer_encoding, const char* data, uint64_t off, | ||||
|                             size_t size) { | ||||
|       auto ptr = static_cast<HttpRequestExtra*>(coninfo_cls); | ||||
|  | @ -305,10 +305,10 @@ class CoreActor : public CoreActorInterface { | |||
|     } | ||||
|   } | ||||
| 
 | ||||
|   static int process_http_request(void* cls, struct MHD_Connection* connection, const char* url, const char* method, | ||||
|   static MHD_RESULT process_http_request(void* cls, struct MHD_Connection* connection, const char* url, const char* method, | ||||
|                                   const char* version, const char* upload_data, size_t* upload_data_size, void** ptr) { | ||||
|     struct MHD_Response* response = nullptr; | ||||
|     int ret; | ||||
|     MHD_RESULT ret; | ||||
| 
 | ||||
|     bool is_post = false; | ||||
|     if (std::strcmp(method, "GET") == 0) { | ||||
|  |  | |||
|  | @ -31,9 +31,22 @@ | |||
| #include "td/utils/buffer.h" | ||||
| #include "ton/ton-types.h" | ||||
| #include "td/utils/port/IPAddress.h" | ||||
| #include <microhttpd.h> | ||||
| 
 | ||||
| #define MAX_POST_SIZE (64 << 10) | ||||
| 
 | ||||
| // Beginning with v0.9.71, libmicrohttpd changed the return type of most
 | ||||
| // functions from int to enum MHD_Result
 | ||||
| // https://git.gnunet.org/gnunet.git/tree/src/include/gnunet_mhd_compat.h
 | ||||
| // proposes to define a constant for the return type so it works well
 | ||||
| // with all versions of libmicrohttpd
 | ||||
| #if MHD_VERSION >= 0x00097002 | ||||
| #define MHD_RESULT enum MHD_Result | ||||
| #else | ||||
| #define MHD_RESULT int | ||||
| #endif | ||||
| #define MHD_RESULT enum MHD_Result | ||||
| 
 | ||||
| extern bool local_scripts_; | ||||
| 
 | ||||
| class CoreActorInterface : public td::actor::Actor { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue