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

macOS Sequoia "No route to Host" #119

Open
salvor-hardin opened this issue Dec 11, 2024 · 4 comments
Open

macOS Sequoia "No route to Host" #119

salvor-hardin opened this issue Dec 11, 2024 · 4 comments
Labels
bug Something isn't working help wanted Extra attention is needed os:mac

Comments

@salvor-hardin
Copy link

salvor-hardin commented Dec 11, 2024

Issue reported on another fork from transmission-remote-gui#1476

Cannot connect to my servers after upgrade to macOS Sequoia 15.0 - 15.1.1
This problem because Transmission Remote GUI does not appear in local network permission settings.

As an immediate workaround running the app from cli (/Applications/Transmission\ Remote\ GUI.app/Contents/MacOS/transgui) seems to work (because it reuses the permissions from the terminal) and the entry will then appear then in the Security -> Network settings.
2024-12-11 at 09 10 13

This seems to be the reason:
https://apple.stackexchange.com/questions/475737/how-can-i-manually-allow-local-network-access-for-an-app

Developers to add new requirement.
In the meantime launching the app once from terminal sounds like an acceptable workaround.

In the meantime, users for Sequoia unaware of this issue/workaround/github (the vast majority!) will NOT be able to use the app.

Would be cool to get that added to a new release so macOS Sequoia prompts for this when running it, instead of having to run the app from terminal first.

Thanks.

2024-12-11 at 09 08 30

@lighterowl lighterowl self-assigned this Dec 11, 2024
@lighterowl
Copy link
Owner

lighterowl commented Dec 11, 2024

Thank you. As noted in the readme, macOS isn't my primary platform so I had no idea of this happening. Also, I don't have a Sequoia system to test so will ask you to check if stuff is working correctly.

@lighterowl lighterowl added bug Something isn't working os:mac labels Dec 11, 2024
@salvor-hardin
Copy link
Author

I can test once something is available to test, thanks.

@lighterowl
Copy link
Owner

lighterowl commented Dec 11, 2024

Okay. Bad news on this one, I'm afraid.

First of all, the resource you linked to describes something that's called "multicast entitlement". According to the linked Apple FAQ post, this is required only if the application does any of this :

Sending a UDP unicast — no
Sending a UDP multicast — yes
Sending a UDP broadcast — yes
Receiving an incoming UDP unicast — no
Receiving an incoming UDP multicast — yes
Receiving an incoming UDP broadcast — yes

Additionally, some Bonjour operations require the multicast entitlement:
Working with arbitrary Bonjour service types — yes
Browsing for advertised service types [1] — yes

Transgui does none of those. The only network connection that it opens is a plain, old, boring HTTP (so, TCP) connection to the Transmission daemon. Another FAQ states that :

You should apply for, and then enable, the multicast entitlement (com.apple.developer.networking.multicast) if any of the following apply:

You send or receive multicasts or broadcasts
You work with Bonjour service types not declared in the Bonjour service property (NSBonjourServices)
You browse for advertised service types

Again, Transgui does none of this. There is no support for Bonjour at all as Transmission does not broadcast its presence this way.

Additionally, even if I wanted to add this "entitlement" to the property list for the application, it most likely would do exactly nothing anyway, as Apple documentation for it states outright :

This entitlement requires permission from Apple before you can use it in your app. Request permission from the Multicast Networking Entitlement Request page.

So I'm pretty sure it isn't the right way to go about this.

The most useful thing I found is Understanding Local Network Privacy but even that doesn't present any straightforward solutions though it does acknowledge that "Making an outgoing TCP connection" triggers a "Local Network Privacy" permission check.

Also leaving here for reference : https://mjtsai.com/blog/2024/10/02/local-network-privacy-on-sequoia/ and https://community.jamf.com/t5/jamf-pro/macos-15-sequoia-pop-up-for-local-network-access/m-p/325888 and https://forums.developer.apple.com/forums/thread/762848 .

@lighterowl
Copy link
Owner

lighterowl commented Dec 11, 2024

worksforme on Sequoia 15.2, even with the "base" transgui version 5.18.0 (not shown below but you'll have to take my word for it)

Attaching a video on what the process looks like to me with a freshly created user (this is crucial as the local network permissions are stored per-user) running transgui for the first time. The initial network request is indeed cancelled with a "No route to host", but subsequent requests work just fine. The application does show up in Privacy & Security > Local Network and turning privileges off reverts back to the network requests returning "No route to host".

foo.mp4

Either way, I don't think there's anything to be done in Transgui specifically to support this, especially seeing how TN3179 says that there's no way to trigger the alert explicitly and there's no way to check if privileges for "local network access" have been granted. The TN does present a few "best effort" approaches but those are no better than what the application does now.

Maybe the functionality is broken-ish in earlier Sequoia versions. This appears to be too macOS/particular-installation specific so I really cannot offer any actual advice.

@lighterowl lighterowl removed their assignment Dec 11, 2024
@lighterowl lighterowl added the help wanted Extra attention is needed label Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed os:mac
Projects
None yet
Development

No branches or pull requests

2 participants