KunoichiZ / lumaupdate

Updater for Luma3DS
https://gbatemp.net/threads/release-luma-updater.471739/
Do What The F*ck You Want To Public License
431 stars 47 forks source link

Unable to connect to Luma3DS Repo #82

Closed Nitemice closed 3 years ago

Nitemice commented 3 years ago

What model of system are you using?

What is your current Luma3DS version?

If you are running an hourly version of Luma3DS, please manually update to a stable version as I will no longer deal with people who are using hourlies.

What version of Luma Updater are you using?

How are you running Luma Updater?

What problems are you experiencing?

"Could not obtain update details."

What is the exact error code you are receiving?

Loaded existing payload in memory, searching for version number...
Downloading https://api.github.com/repos/AuroraWright/Luma3DS/releases/latest...
Could not get Location header for 3xx reply
Ret code: ded92

I have v2.5 installed, and I have tried reinstalling it, but I am still getting this error. Looking at the URL, I assume #73 would fix it.

iNSiGhT59 commented 3 years ago

Hi,

Same here on a New 3DS XL and a New 3DS.

Notes :

Thanks for your work !

Artanisx commented 3 years ago

Same here on Old 3DS.

Luma Updated 2.5

Current installed version: 10.2.1-c058e3f

Error: Could not obtain update details.

uintdev commented 3 years ago

I had looked through the source code and noticed something.

So, we have the release URL. https://github.com/KunoichiZ/lumaupdate/blob/757aec5b9425b17ded2ebaa3111a67d255da42fd/source/release.cpp#L31 The message that comes up in this case is Could not get Location header for 3xx reply. Note that this is for the first request for the release URL so changing to a more accurate URL (LumaTeam) will not change the outcome in regards to this issue (although probably should still update that). https://github.com/KunoichiZ/lumaupdate/blob/757aec5b9425b17ded2ebaa3111a67d255da42fd/source/http.cpp#L24 The second parameter of httpc.GetResponseHeader() is where the header name goes. In this case, location. Note that it is entirely lowercase. What does this function do? https://github.com/KunoichiZ/lumaupdate/blob/757aec5b9425b17ded2ebaa3111a67d255da42fd/source/httpc.cpp#L84-L97 When it comes to the checking aspect, it loops through the response headers and looks for matches for the data provided in the second parameter. In this case, location. Now, there is just a small problem. It is best practice to capitalise the initial letter of each word in headers. GitHub's API appears to return Location as opposed to location. There is no case conversion to the header names (and the headers to check for). It is not matching anymore because of a silent API (server-side) change to the capitalisation of the location header.

I had manually patched the latest 3DSX file and can confirm that it had resolved the issue.

Update: I did notice that their last commit (at the time of posting) to source/http.cpp https://github.com/KunoichiZ/lumaupdate/commit/80461fa17f1622568b2c3f1b02dfb96a29101f0b is to do with changing the case of the location header name for the very same reason (causing the recent issue) and made part of the v2.5 build. https://github.com/KunoichiZ/lumaupdate/releases/tag/v2.5 I doubt it but if there is some unusual behaviour going on across consoles regarding what sort of case the location response header ends up being, then doing case-insensitive header name matching might be way more reliable.

Meanwhile, if you want something functional, your best bet is using v2.4 where it does not have this now breaking change.

pa-august commented 3 years ago

When will a version with this fix be pushed out?

ghost commented 3 years ago

@uintdev said that he had manually patched the 3dsx, could he release the patch if @KunoichiZ is ok with it?

uintdev commented 3 years ago

The version that does not have the issue is v2.4 (https://github.com/KunoichiZ/lumaupdate/releases/tag/v2.4). Give that a try (especially if you prefer the CIA version).

To avoid SD card removal:

  1. Find an online QR code encoder (https://www.the-qrcode-generator.com/ works)
  2. Paste 'https://github.com/KunoichiZ/lumaupdate/releases/download/v2.4/lumaupdater.cia' into text field
  3. Enter FBI application
  4. Remove Luma3DS Updater title
  5. Use the remote install via QR code feature
  6. Scan the QR code
  7. ???
  8. Profit

Note that the older version will ask to update to a newer version and will keep doing that on launch. For now, skip the notice.

ghost commented 3 years ago

Okay, you're right! The cia actually overwrites the old one so removing it isn't strictly needed, but, yep! Thanks!

Artanisx commented 3 years ago

The version that does not have the issue is v2.4 (https://github.com/KunoichiZ/lumaupdate/releases/tag/v2.4). Give that a try (especially if you prefer the CIA version).

To avoid SD card removal:

  1. Find an online QR code encoder (https://www.the-qrcode-generator.com/ works)
  2. Paste 'https://github.com/KunoichiZ/lumaupdate/releases/download/v2.4/lumaupdater.cia' into text field
  3. Enter FBI application
  4. Remove Luma3DS Updater title
  5. Use the remote install via QR code feature
  6. Scan the QR code
  7. ???
  8. Profit

Note that the older version will ask to update to a newer version and will keep doing that on launch. For now, skip the notice.

Thanks for this! I just downgraded to Luma Updater 2.4 with this method :-)

pa-august commented 3 years ago

Will 2.5 be able to update itself to fix the issue, or do I need to keep an eye out for an updated cia file to install?

uintdev commented 3 years ago

The application fetches the latest release (for itself) found on the releases page. Which means the maintainer will have to add a new release.

ayreon commented 3 years ago

Why did you close it? The issue still exists.

uintdev commented 3 years ago

It would be because the fix was merged. Although, yes, there is no new build at this time that includes the changes.