From c0c7b009cce03cbbcd2213ac5bcc24711a5b649a Mon Sep 17 00:00:00 2001 From: Steven Smith Date: Tue, 26 Apr 2016 19:55:12 -0700 Subject: [PATCH] Handle HTTP redirect codes. (thanks @ksanislo) --- source/ui/section/qrinstall.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/ui/section/qrinstall.c b/source/ui/section/qrinstall.c index 2c8eaa5..6ad24b6 100644 --- a/source/ui/section/qrinstall.c +++ b/source/ui/section/qrinstall.c @@ -57,6 +57,13 @@ static Result qrinstall_open_src(void* data, u32 index, u32* handle) { if(R_SUCCEEDED(res = httpcBeginRequest(context)) && R_SUCCEEDED(res = httpcGetResponseStatusCode(context, &qrInstallData->responseCode, 0))) { if(qrInstallData->responseCode == 200) { *handle = (u32) context; + } else if(qrInstallData->responseCode == 301 || qrInstallData->responseCode == 302 || qrInstallData->responseCode == 303) { + if(R_SUCCEEDED(res = httpcGetResponseHeader(context, "Location", qrInstallData->urls[index], URL_MAX))) { + httpcCloseContext(context); + free(context); + + return qrinstall_open_src(data, index, handle); + } } else { res = R_FBI_HTTP_RESPONSE_CODE; }