mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-10-30 03:37:52 +00:00
Fix HTTP RequestState values (fixes Pretendo Network support with HLE http)
de1f082e75
This commit is contained in:
parent
3718435301
commit
c2cd5e17b4
2 changed files with 28 additions and 10 deletions
|
@ -381,10 +381,10 @@ void Context::MakeRequestNonSSL(httplib::Request& request, const URLInfo& url_in
|
|||
|
||||
if (!client->send(request, response, error)) {
|
||||
LOG_ERROR(Service_HTTP, "Request failed: {}: {}", error, httplib::to_string(error));
|
||||
state = RequestState::TimedOut;
|
||||
state = RequestState::Completed;
|
||||
} else {
|
||||
LOG_DEBUG(Service_HTTP, "Request successful");
|
||||
state = RequestState::ReadyToDownloadContent;
|
||||
state = RequestState::ReceivingBody;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -439,10 +439,10 @@ void Context::MakeRequestSSL(httplib::Request& request, const URLInfo& url_info,
|
|||
|
||||
if (!client->send(request, response, error)) {
|
||||
LOG_ERROR(Service_HTTP, "Request failed: {}: {}", error, httplib::to_string(error));
|
||||
state = RequestState::TimedOut;
|
||||
state = RequestState::Completed;
|
||||
} else {
|
||||
LOG_DEBUG(Service_HTTP, "Request successful");
|
||||
state = RequestState::ReadyToDownloadContent;
|
||||
state = RequestState::ReceivingBody;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -696,6 +696,7 @@ void HTTP_C::ReceiveDataImpl(Kernel::HLERequestContext& ctx, bool timeout) {
|
|||
http_context.current_copied_data,
|
||||
0, remaining_data);
|
||||
http_context.current_copied_data += remaining_data;
|
||||
http_context.state = RequestState::Completed;
|
||||
rb.Push(ResultSuccess);
|
||||
} else {
|
||||
async_data->buffer->Write(http_context.response.body.data() +
|
||||
|
|
|
@ -48,12 +48,29 @@ enum class RequestMethod : u8 {
|
|||
constexpr u32 TotalRequestMethods = 8;
|
||||
|
||||
enum class RequestState : u8 {
|
||||
NotStarted = 0x1, // Request has not started yet.
|
||||
ConnectingToServer = 0x5, // Request in progress, connecting to server.
|
||||
SendingRequest = 0x6, // Request in progress, sending HTTP request.
|
||||
ReceivingResponse = 0x7, // Request in progress, receiving HTTP response.
|
||||
ReadyToDownloadContent = 0x8, // Ready to download the content.
|
||||
TimedOut = 0xA, // Request timed out?
|
||||
/// Request has not started yet.
|
||||
NotStarted = 0x1,
|
||||
|
||||
/// Request in progress, connecting to server.
|
||||
ConnectingToServer = 0x5,
|
||||
|
||||
/// Request in progress, sending HTTP request.
|
||||
SendingRequest = 0x6,
|
||||
|
||||
// Request in progress, receiving HTTP response and headers.
|
||||
ReceivingResponse = 0x7,
|
||||
|
||||
/// Request in progress, receiving HTTP body. The HTTP module may
|
||||
/// get stuck in this state if the internal receive buffer gets full.
|
||||
/// Once the user calls ReceiveData it will get unstuck.
|
||||
ReceivingBody = 0x8,
|
||||
|
||||
/// Request is finished and all data has been received. HTTP transitions
|
||||
/// to the Completed state shortly afterwards after some cleanup.
|
||||
Received = 0x9,
|
||||
|
||||
/// Request is completed.
|
||||
Completed = 0xA,
|
||||
};
|
||||
|
||||
enum class PostDataEncoding : u8 {
|
||||
|
|
Loading…
Reference in a new issue