Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix rare issues and add some QoL features #68

Merged
merged 14 commits into from
Aug 11, 2020
Merged

Fix rare issues and add some QoL features #68

merged 14 commits into from
Aug 11, 2020

Conversation

shiftinv
Copy link
Contributor

@shiftinv shiftinv commented Aug 9, 2020

A bunch of smaller fixes/features, most notably TCP IPC and a workaround for corrupted configuration files. I didn't want to split these changes into 11 different PRs as to not spam GitHub notifications, but if you want me to remove a commit or open separate PRs, let me know.

Details (in commit order):

  1. Enable TLS 1.2 (e.g. allows using *.github.io as a titlekey site, see Configuration -> Protocols here)
  2. Work around invalid .xml configuration files by trying to parse the configuration file and deleting it in case of an exception
  3. Add yyyy-MM-dd HH:mm:ss.fff timestamps to logger output
  4. Remove redirect from ccs.cdn.wup.shop.nintendo.net to ccs.cdn.c.shop.nintendowifi.net; it was originally used for 3DS but is obsolete now, removing it should also fix the 502 errors related to DNS
  5. Add TCP bindings for IPC, which hopefully fixes some rare issues related to named pipes
    • Connection info is passed to the injector through commandline arguments; since the main entrypoint checks args.Length == 1 and exits otherwise, an additional patch was required
    • The used IPC binding is configurable in conf.json through the Launcher.IPCType option (TCP / NamedPipe), and defaults to TCP
  6. Work around an access violation caused by the RivaTuner overlay when the download manager loses focus by checking if RTSSHooks[64].dll is loaded into the process, and disabling the download manager hint overlay
    • I wasn't able to reproduce the issue so this patch may or may not actually fix the issue, but it does correctly detect if the module is loaded into the process and acts accordingly
  7. Fix custom FiddlerCore certificate validation callback, which previously trusted a certificate as long as the chain itself was valid, even if the system didn't trust the root certificate
  8. Make "Could not find Wii U USB Helper..." message more detailed, suggesting possible reasons for the missing executable
  9. Skip module initializer injection if the patched file already exists and the initializer was injected by the same version, which speeds up the program launch
    • This is accomplished by adding a ModuleInitInjected assembly attribute with the current version to the patched executable, and checking for a matching version before re-injecting
  10. Fix detection of running instances (regression from 5d6b18a)
  11. Add --portable flag, useful for enabling portable mode without having to launch the program once first

@shiftinv shiftinv mentioned this pull request Aug 9, 2020
USBHelperInjector/IPC/IPCUtils.cs Outdated Show resolved Hide resolved
USBHelperInjector/IPC/IPCUtils.cs Outdated Show resolved Hide resolved
USBHelperInjector/IPC/IPCUtils.cs Outdated Show resolved Hide resolved
USBHelperInjector/Patches/InvalidConfigPatch.cs Outdated Show resolved Hide resolved
USBHelperLauncher/Program.cs Show resolved Hide resolved
USBHelperInjector/IPC/IPCUtils.cs Outdated Show resolved Hide resolved
USBHelperInjector/Patches/InvalidConfigPatch.cs Outdated Show resolved Hide resolved
@FailedShack FailedShack merged commit b99c09d into FailedShack:master Aug 11, 2020
@shiftinv shiftinv deleted the fix-misc branch August 11, 2020 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants