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

App should not change Preferred Protocol/Port and should show currently connected Port #237

Open
ppittle opened this issue May 18, 2023 · 4 comments
Assignees
Milestone

Comments

@ppittle
Copy link

ppittle commented May 18, 2023

Bug report

A user can select a protocol and port to use, for example OpenVPN TCP 443.

However, if a server is unable to connect on this protocol/port, the app will instead try a different protocol and port combination, for example UDP 2040.

When this happens, the app displays a toast message, but does not update the UI; only the previously selected port is displayed.

If the user then connects to a different server, the UI indicates that the app will try to connect to the port the user requested (ie TCP 443) but instead uses the last successful protocol/port (ie UDP 2040).

Finally, if you navigate to the Preferred Protocol/Port you can see the app has changed the user's preference to the last successful protocol/port (ie UDP 2040).

Screenshot_20230517-222332_IVPN

Screenshot_20230517-223945_IVPN

Describe your environment

  • Device: Android
  • OS name and version: Lineage OS 20 (android 13)
  • IVPN app version: 2.8.6 (f-droid)

Describe the problem

Steps to reproduce:

  1. Using Android Client, follow instructions (here) to select port and protocol: OpenVPN, TCP 1443
  2. Connect to a Los Angeles Server.
    • NOTE: It may be necessary to repeat this step several times until matched with a server that doesn't have the selected port available.
  3. Observe App Behavior:
    • App displays toast: Connection to server blocked reconnection on a different port.
    • App Protocol, Port still displays OpenVPN, TCP 1443
    • Status is Connected
  4. Connect to Salt Lake City Server
  5. Observe App Behavior:
    • App Protocol, Port still displays OpenVPN, TCP 1443
    • Status is Connected
  6. Click Pause button.
  7. Click Protocol, Port button.
  8. Observe App Behavior:
    • Protocol settings drop down displays a different value (in my test run TCP 80)
  9. Press Back button
  10. Observe App Behavior:
    • App Protocol, Port NOW displays OpenVPN, TCP 80

Observed Results:

App was observed:

  • not correctly displaying the currently connected port. If this is by design - then, as a user, it is unclear if Connection Status Protocol,Port is meant to display current connected port OR Preferred Protocol/Port
  • Changing the Preferred Protocol/Port to the last successful connection rather than preserving the user's selected choice.

Expected Results:

There is some ambiguity on how the App should behave if the combined user provided Server and Preferred Protocol/Port are not available. So some context:

From the Help Center - How do I change the port or protocol used to connect?:

Changing the port/protocol you use to connect to the VPN can ... unblock the connection if a certain port/protocol combination is blocked.

I have observed that my mobile provider heavily throttles UDP traffic, but not TCP 80 or 443. It's important to me that when my mobile device transitions from WiFi to mobile network, iVPN re-establishes a connection using TCP 80 or 443; otherwise my mobile internet will be unusable.

What do you expect to happen:

  1. Bug Fix: The app should not change the Preferred Protocol/Port. Connecting to a new Server should always use the Protocol/Port I have selected.
  2. Improvement: I run into this problem when my mobile device transitions from wifi to a mobile network. If my device is already connected to say, us-ca2.gw.ivpn.net OpenVPN TCP 80 on wifi, it should be able to resume that connection on mobile. Perhaps the servers can be improved to better allow that connection to be re-established - this way I don't run into this problem in the first place.
  3. Feature Request: Allow user to select a resolution strategy in the event it's not possible to connect to a selected Server and Protocol/Port pair (ie us-ca2.gw.ivpn.net OpenVPN TCP 80):
    • Shuffle Protocol/Port (current app behavior) - App will continue to attempt to connect to the selected server, but on a different Protocol/Port.
    • Shuffle Server (new option) - App will try connecting to different servers at the requested location (ie Los Angeles currently has 5), or the nearest geographical server (ie Los Vegas), using the Preferred Protocol/Port

Relevant Code:

// TODO(you): code here to reproduce the problem
@jurajhilje jurajhilje self-assigned this May 18, 2023
@jurajhilje jurajhilje added this to the 2.9.0 milestone May 18, 2023
@jurajhilje
Copy link
Member

Thanks for the report, this is related to #155.

@ppittle
Copy link
Author

ppittle commented May 18, 2023

Related to #155 - but this issue highlights a bigger concern: after the app changes port, the user can then select connecting to a new Server. Because the App has overridden the Preferred Port AND not updated the UI, the user rightly thinks they are connecting one way but the app is connecting a different way.

@jurajhilje
Copy link
Member

Understood, I'll make sure that this is resolved in the next release.

@jurajhilje jurajhilje modified the milestones: 2.9.0, 2.10.0 Jul 5, 2023
@ppittle
Copy link
Author

ppittle commented Jul 23, 2023

@jurajhilje - I saw there were some updates to the connection page in 2.9.0; it's nice to see work being done on this area!

Also looks like there is more work tagged for 2.10.0. Is there any way to preview the changes before the official 2.10.0 release?

@jurajhilje jurajhilje modified the milestones: 2.10.0, 2.11.0 Aug 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants