jamulussoftware / jamulus

Jamulus enables musicians to perform real-time jam sessions over the internet.
https://jamulus.io
Other
997 stars 222 forks source link

Cannot connect to custom server if jamulus.io is unreachable #1245

Closed jerogee closed 3 years ago

jerogee commented 3 years ago

Jamulus client cannot connect to a custom server if jamulus.io is unreachable. More specifically, if the URL to pull the available server list is unreachable (e.g. updatecheck1.jamulus.io). This is clearly a bug: Jamulus becomes unusable if it cannot phone home.

To Reproduce

  1. Block traffic from *.jamulus.io
  2. Connect to a custom server (not being *.jamulus.io)
  3. Connection cannot be established

Expected behavior

  1. Block traffic from/to *.jamulus.io
  2. Connect to a custom server (not being *.jamulus.io)
  3. Connection can be established: have fun!

Operating system MacOS, but this is not OS-dependent.

Version of Jamulus 3.7.0 release candidate 1 (#1217), but probably (all) earlier versions.

ann0see commented 3 years ago

Could you please try if this also happens on release 3.6.2? This would be a severe issue. Maybe it's related to the new update check mechanism?

hoffie commented 3 years ago

Hrm, I can't reproduce this on Linux (tried dropping traffic to updatecheck1/2 via iptables). How exactly did you block the traffic? Did DNS still work?

jerogee commented 3 years ago

@hoffie, I blocked .jamulus.io and the serverlist could therefore not be auto-populated. Was your serverlist auto-populated? If so, you can indeed not reproduce this as one of the below was used instead, and in that case please block all traffic to .jamulus.io and recheck ? If not, this may be a mac specific issue. We have:

./src/global.h:97:#define DEFAULT_SERVER_ADDRESS           "anygenre1.jamulus.io"
./src/global.h:99:#define CENTSERV_ANY_GENRE2              "anygenre2.jamulus.io:22224"
./src/global.h:100:#define CENTSERV_ANY_GENRE3              "anygenre3.jamulus.io:22624"
./src/global.h:101:#define CENTSERV_GENRE_ROCK              "rock.jamulus.io:22424"
./src/global.h:102:#define CENTSERV_GENRE_JAZZ              "jazz.jamulus.io:22324"
./src/global.h:103:#define CENTSERV_GENRE_CLASSICAL_FOLK    "classical.jamulus.io:22524"
./src/global.h:104:#define CENTSERV_GENRE_CHORAL            "choral.jamulus.io:22724"
./src/global.h:107:#define UPDATECHECK1_ADDRESS             "updatecheck1.jamulus.io"
./src/global.h:108:#define UPDATECHECK2_ADDRESS             "updatecheck2.jamulus.io"
jerogee commented 3 years ago

@ann0see, I will compile 3.6.2 and check.

ann0see commented 3 years ago

Thank you!

jerogee commented 3 years ago

Okay @hoffie , @ann0see: false alarm. Pfeww... sorry.

FYI, it also happens on 3.6.2. I have to issue a bug ticket to Little Snitch, the firewall software for Mac. It seems that any IP address the process connects to is labelled according to the results of the first DNS lookup in that process (jamulus.fischvolk.de for 3.6.2). If I then blocked "jamulus.fischvolk.de" it would also block traffic to the custom server.

If I block in the good old way, by entries in /etc/hosts, anything fischvolk.de / jamulus.io does get blocked, and I can still connect to a custom server as expected.

@hoffie, good that you asked me about how I blocked. I dismissed double-checking that at first because I trusted Little Snitch's reporting, but running a quick check with /etc/hosts showed this to be a false alarm.

ann0see commented 3 years ago

Ok. So can we close this now?