add 'data' argument to http error callback
This commit is contained in:
parent
20c5edb495
commit
7d6ddfa535
@ -273,7 +273,7 @@ network.__process_events = function()
|
|||||||
_http_response_callbacks[event[3]] = nil
|
_http_response_callbacks[event[3]] = nil
|
||||||
_http_error_callbacks[event[3]] = nil
|
_http_error_callbacks[event[3]] = nil
|
||||||
if callback then
|
if callback then
|
||||||
callback(event[2])
|
callback(event[2], event[4])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -88,27 +88,24 @@ static int perform_get(lua::State* L, network::Network& network, bool binary) {
|
|||||||
|
|
||||||
int currentRequestId = request_id++;
|
int currentRequestId = request_id++;
|
||||||
|
|
||||||
network.get(url, [currentRequestId, binary](std::vector<char> bytes) {
|
network.get(
|
||||||
push_event(NetworkEvent(
|
url,
|
||||||
RESPONSE,
|
[currentRequestId, binary](std::vector<char> bytes) {
|
||||||
ResponseEventDto {
|
push_event(NetworkEvent(
|
||||||
200,
|
RESPONSE,
|
||||||
binary,
|
ResponseEventDto {
|
||||||
currentRequestId,
|
200, binary, currentRequestId, std::move(bytes)}
|
||||||
std::move(bytes)
|
));
|
||||||
}
|
},
|
||||||
));
|
[currentRequestId, binary](int code, std::vector<char> bytes) {
|
||||||
}, [currentRequestId](int code) {
|
push_event(NetworkEvent(
|
||||||
push_event(NetworkEvent(
|
RESPONSE,
|
||||||
RESPONSE,
|
ResponseEventDto {
|
||||||
ResponseEventDto {
|
code, binary, currentRequestId, std::move(bytes)}
|
||||||
code,
|
));
|
||||||
false,
|
},
|
||||||
currentRequestId,
|
std::move(headers)
|
||||||
{}
|
);
|
||||||
}
|
|
||||||
));
|
|
||||||
}, std::move(headers));
|
|
||||||
return lua::pushinteger(L, currentRequestId);
|
return lua::pushinteger(L, currentRequestId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,21 +135,17 @@ static int l_post(lua::State* L, network::Network& network) {
|
|||||||
url,
|
url,
|
||||||
string,
|
string,
|
||||||
[currentRequestId](std::vector<char> bytes) {
|
[currentRequestId](std::vector<char> bytes) {
|
||||||
auto buffer = std::make_shared<util::Buffer<ubyte>>(
|
|
||||||
reinterpret_cast<const ubyte*>(bytes.data()), bytes.size()
|
|
||||||
);
|
|
||||||
push_event(NetworkEvent(
|
push_event(NetworkEvent(
|
||||||
RESPONSE,
|
RESPONSE,
|
||||||
ResponseEventDto {
|
ResponseEventDto {
|
||||||
200,
|
200, false, currentRequestId, std::move(bytes)}
|
||||||
false,
|
|
||||||
currentRequestId,
|
|
||||||
std::vector<char>(buffer->begin(), buffer->end())}
|
|
||||||
));
|
));
|
||||||
},
|
},
|
||||||
[currentRequestId](int code) {
|
[currentRequestId](int code, std::vector<char> bytes) {
|
||||||
push_event(NetworkEvent(
|
push_event(NetworkEvent(
|
||||||
RESPONSE, ResponseEventDto {code, false, currentRequestId, {}}
|
RESPONSE,
|
||||||
|
ResponseEventDto {
|
||||||
|
code, false, currentRequestId, std::move(bytes)}
|
||||||
));
|
));
|
||||||
},
|
},
|
||||||
std::move(headers)
|
std::move(headers)
|
||||||
|
|||||||
@ -173,7 +173,7 @@ public:
|
|||||||
auto message = curl_multi_strerror(res);
|
auto message = curl_multi_strerror(res);
|
||||||
logger.error() << message << " (" << url << ")";
|
logger.error() << message << " (" << url << ")";
|
||||||
if (onReject) {
|
if (onReject) {
|
||||||
onReject(HTTP_BAD_GATEWAY);
|
onReject(HTTP_BAD_GATEWAY, {});
|
||||||
}
|
}
|
||||||
url = "";
|
url = "";
|
||||||
}
|
}
|
||||||
@ -188,7 +188,7 @@ public:
|
|||||||
auto message = curl_multi_strerror(res);
|
auto message = curl_multi_strerror(res);
|
||||||
logger.error() << message << " (" << url << ")";
|
logger.error() << message << " (" << url << ")";
|
||||||
if (onReject) {
|
if (onReject) {
|
||||||
onReject(HTTP_BAD_GATEWAY);
|
onReject(HTTP_BAD_GATEWAY, {});
|
||||||
}
|
}
|
||||||
curl_multi_remove_handle(multiHandle, curl);
|
curl_multi_remove_handle(multiHandle, curl);
|
||||||
url = "";
|
url = "";
|
||||||
@ -213,9 +213,14 @@ public:
|
|||||||
onResponse(std::move(buffer));
|
onResponse(std::move(buffer));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.error() << "response code " << response << " (" << url << ")";
|
logger.error()
|
||||||
|
<< "response code " << response << " (" << url << ")"
|
||||||
|
<< (buffer.empty()
|
||||||
|
? ""
|
||||||
|
: std::to_string(buffer.size()) + " byte(s)");
|
||||||
|
totalDownload += buffer.size();
|
||||||
if (onReject) {
|
if (onReject) {
|
||||||
onReject(response);
|
onReject(response, std::move(buffer));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
url = "";
|
url = "";
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
namespace network {
|
namespace network {
|
||||||
using OnResponse = std::function<void(std::vector<char>)>;
|
using OnResponse = std::function<void(std::vector<char>)>;
|
||||||
using OnReject = std::function<void(int)>;
|
using OnReject = std::function<void(int, std::vector<char>)>;
|
||||||
using ConnectCallback = std::function<void(u64id_t, u64id_t)>;
|
using ConnectCallback = std::function<void(u64id_t, u64id_t)>;
|
||||||
using ServerDatagramCallback = std::function<void(u64id_t sid, const std::string& addr, int port, const char* buffer, size_t length)>;
|
using ServerDatagramCallback = std::function<void(u64id_t sid, const std::string& addr, int port, const char* buffer, size_t length)>;
|
||||||
using ClientDatagramCallback = std::function<void(u64id_t cid, const char* buffer, size_t length)>;
|
using ClientDatagramCallback = std::function<void(u64id_t cid, const char* buffer, size_t length)>;
|
||||||
|
|||||||
@ -16,7 +16,7 @@ TEST(curltest, curltest) {
|
|||||||
auto view = std::string_view(data.data(), data.size());
|
auto view = std::string_view(data.data(), data.size());
|
||||||
auto value = json::parse(view);
|
auto value = json::parse(view);
|
||||||
std::cout << value << std::endl;
|
std::cout << value << std::endl;
|
||||||
}, [](auto){}
|
}, [](auto, auto){}
|
||||||
);
|
);
|
||||||
std::cout << "upload: " << network->getTotalUpload() << " B" << std::endl;
|
std::cout << "upload: " << network->getTotalUpload() << " B" << std::endl;
|
||||||
std::cout << "download: " << network->getTotalDownload() << " B" << std::endl;
|
std::cout << "download: " << network->getTotalDownload() << " B" << std::endl;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user