mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-11 22:11:51 +00:00
fix
This commit is contained in:
parent
9226f362a7
commit
946728e54e
3 changed files with 28 additions and 2 deletions
|
|
@ -125,17 +125,21 @@ network.request = request
|
||||||
|
|
||||||
network.get = function(url, callback, errorCallback, headers)
|
network.get = function(url, callback, errorCallback, headers)
|
||||||
return request(url, {
|
return request(url, {
|
||||||
|
method = "GET",
|
||||||
headers = headers,
|
headers = headers,
|
||||||
on_response = callback,
|
on_response = callback,
|
||||||
on_error = errorCallback,
|
on_error = errorCallback,
|
||||||
|
follow_location = true,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
network.get_binary = function(url, callback, errorCallback, headers)
|
network.get_binary = function(url, callback, errorCallback, headers)
|
||||||
return request(url, {
|
return request(url, {
|
||||||
|
method = "GET",
|
||||||
headers = headers,
|
headers = headers,
|
||||||
on_response = callback and (function (response) return callback(Bytearray(response)) end),
|
on_response = callback and (function (response) return callback(Bytearray(response)) end),
|
||||||
on_error = errorCallback
|
on_error = errorCallback,
|
||||||
|
follow_location = true,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,19 @@ static int l_request(lua::State* L, network::Network& network) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int currentRequestId = request_id++;
|
int currentRequestId = request_id++;
|
||||||
|
request.onResponse = [currentRequestId](std::vector<char> bytes) {
|
||||||
|
push_event(NetworkEvent(
|
||||||
|
RESPONSE,
|
||||||
|
ResponseEventDto {200, false, currentRequestId, std::move(bytes)}
|
||||||
|
));
|
||||||
|
};
|
||||||
|
request.onReject = [currentRequestId](int code, std::vector<char> bytes) {
|
||||||
|
push_event(NetworkEvent(
|
||||||
|
RESPONSE,
|
||||||
|
ResponseEventDto {code, false, currentRequestId, std::move(bytes)}
|
||||||
|
));
|
||||||
|
};
|
||||||
|
|
||||||
network.request(std::move(request));
|
network.request(std::move(request));
|
||||||
return lua::pushinteger(L, currentRequestId);
|
return lua::pushinteger(L, currentRequestId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,9 @@ public:
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
|
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
|
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffer);
|
||||||
curl_easy_setopt(curl, CURLOPT_USERAGENT, "curl/7.81.0");
|
curl_easy_setopt(curl, CURLOPT_USERAGENT, "curl/7.81.0");
|
||||||
|
#ifndef NDEBUG
|
||||||
|
// curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
|
||||||
|
#endif
|
||||||
if (request.maxSize == 0) {
|
if (request.maxSize == 0) {
|
||||||
curl_easy_setopt(
|
curl_easy_setopt(
|
||||||
curl, CURLOPT_MAXFILESIZE, std::numeric_limits<long>::max()
|
curl, CURLOPT_MAXFILESIZE, std::numeric_limits<long>::max()
|
||||||
|
|
@ -119,7 +122,8 @@ public:
|
||||||
if(msg->msg == CURLMSG_DONE) {
|
if(msg->msg == CURLMSG_DONE) {
|
||||||
curl_multi_remove_handle(multiHandle, curl);
|
curl_multi_remove_handle(multiHandle, curl);
|
||||||
}
|
}
|
||||||
int response;
|
int response = -1;
|
||||||
|
CURLcode result = msg->data.result;
|
||||||
curl_easy_getinfo(msg->easy_handle, CURLINFO_RESPONSE_CODE, &response);
|
curl_easy_getinfo(msg->easy_handle, CURLINFO_RESPONSE_CODE, &response);
|
||||||
if (response == HTTP_OK) {
|
if (response == HTTP_OK) {
|
||||||
long size;
|
long size;
|
||||||
|
|
@ -133,6 +137,11 @@ public:
|
||||||
if (onResponse) {
|
if (onResponse) {
|
||||||
onResponse(std::move(buffer));
|
onResponse(std::move(buffer));
|
||||||
}
|
}
|
||||||
|
} else if (response == 0) {
|
||||||
|
logger.error() << curl_easy_strerror(result) << " (" << url << ")";
|
||||||
|
if (onReject) {
|
||||||
|
onReject(response, {});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.error()
|
logger.error()
|
||||||
<< "response code " << response << " (" << url << ")"
|
<< "response code " << response << " (" << url << ")"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue