Commit Graph

91 Commits

Author SHA1 Message Date
John Maguire 47865d568b
Fix DNS over mobile networks on Android (#40)
I think this closes the loop on DNS issues I was experiencing.
Previously, after starting Nebula, DNS would work until you switched
networks (e.g. from mobile to WiFi or vice-versa). This was fixed by
removing some explicit DNS server sets in commit
a283bf8010. This casued DNS to work in
`adb shell` even after toggling networks.

However, it did not actually fix the problem for Android applications.
The new behavior is that they would work while on WiFi, but fail on a
mobile network.

To quote Android docs:

> Allows traffic from the specified address family. By default, if no
> address, route or DNS server of a specific family (IPv4 or IPv6) is
> added to this VPN, then all outgoing traffic of that family is blocked.
> If any address, route or DNS server is added, that family is allowed.
> This method allows an address family to be unblocked even without adding
> an address, route or DNS server of that family. Traffic of that family
> will then typically fall-through to the underlying network if it's
> supported. family must be either AF_INET (for IPv4) or AF_INET6 (for
> IPv6). IllegalArgumentException is thrown if it's neither.

In my case, my home network supports only IPv4 while my mobile network
uses DNS over IPv6. Since my Nebula routes are IPv4-only, IPv6 traffic
stopped working, and DNS requests failed.
2021-05-10 16:16:21 -04:00
Nate Brown f176047510
git blame ignore that the format merge (#39) 2021-05-03 17:00:29 -05:00
Nate Brown 9934f226e3
Ran flutter format -l 120 --suppress-analytics lib (#38) 2021-05-03 16:58:04 -05:00
Nate Brown 3a37802f4d
Setup some github actions (#37) 2021-05-03 16:55:51 -05:00
John Maguire f3fab82e34
Update README.md (#36) 2021-05-03 16:25:59 -04:00
Nate Brown 0bb2a30829
Support replacing certs (#33) 2021-05-03 15:16:00 -05:00
Nate Brown a283bf8010
Remove setting dns as it seems to be unnecessary (#35) 2021-05-03 14:44:13 -05:00
John Maguire 3194028a78
Unregister network callback on stop (Android) (#34)
Previously when `stopVpn()` was called, it was possible for the network
change callback to fire while we were in the middle of shutting down.
This commit unregisters the network change callback before telling
Nebula to shutdown.
2021-05-03 14:58:09 -04:00
John Maguire 1d044a1e36
Fix state when connection toggle is tapped twice (#16)
Fixes #15. When tapping the toggle in rapid succession,
`NebulaVpnService.onStartCommand` is called twice, in serial.  This
method includes logic to show an error to the user if they somehow
attempt to connect to a service while already connected.

However, this method of showing an error message (calling
`announceExit`) sends a signal to `MainActivity` telling it the service
has exited, and that it should set the UI state to "Disconnected." It
does not actually disconnect the service at this point, resulting in a
state mismatch in which you cannot actually disconnect the service.

The solution in this commit is to remove this signalling and simply
return out of `onStartCommand` to avoid processing the start request
twice if the site is already running.
2021-05-03 14:56:21 -04:00
John Maguire 3123ce5f9a
Let Android install debug & release APKs side-by-side (#31) 2021-04-29 16:13:13 -04:00
Nate Brown a7c32f5bd4
Kotlin active site race on boot fix (#29) 2021-04-29 10:17:43 -05:00
Nathan Brown 4c28cc196e
Rework ios ipc (#28) 2021-04-27 10:29:28 -05:00
Nathan Brown 4cad646a7c
Disable sleep/wake detection on android (#27) 2021-04-23 16:54:48 -05:00
Nathan Brown 1283ce30e9
IPV6 support (#24) 2021-04-23 16:23:06 -05:00
Nathan Brown a5ca3f86af
Upgrade to flutter 2 (#26) 2021-04-23 12:33:28 -05:00
John Maguire 10d6b6bb9a
Merge pull request #25 from JohnMaguire/fix-build
Minor tweaks for a clean build
2021-04-22 18:56:00 -04:00
John Maguire b2c674d65a Minor tweaks for a clean build
- Updated README with some maybe-helpful instructions for downgrading
  flutter to a version that will build the project
- Added a step to create a missing directory to the Gradle build
  (otherwise the build fails)
- Set `shrinkResources false` - otherwise you get an error that you
  can't shrink resources unless you also enable minifying
2021-04-22 18:46:16 -04:00
micha3lbrown e844e2c195
Add logWrap to global settings
`logWrap` is a configuration that allows for users to decide if when
viewing logs the lines should extend off screen allowing for scroll
behavior or if they should wrap at screen edge.

We also considered allowing users to toggle this setting at the Site
level but decided that since users would likely want this setting to
apply to all sites, we hoisted the configuration.

Advances #3
2021-02-05 10:09:56 -05:00
Michael Brown dd1bc9e3f9
Update README.md and pubspec.lock 2020-12-10 13:52:54 -05:00
Michael Brown cd6a3d2ad9
Adjust sourcing of env.sh w/ relative path 2020-12-08 11:06:52 -05:00
Nate Brown 81139885c8 Add a first cut readme 2020-12-07 15:10:31 -06:00
Nate Brown 33f73b8ea0 Tweak android icon 2020-09-25 10:47:10 -05:00
Nate Brown 2ef876343e Tweak the icon 2020-09-25 10:13:00 -05:00
Nate Brown a01b22fcfe Update icon 2020-09-24 16:24:04 -05:00
Nate Brown 8464e2351a Update to 14 in podfile 2020-09-17 21:56:53 -05:00
Nate Brown e71ae4c68e Get ios 14 building and attempt to correct mmwormhole issues with the nextension 2020-09-17 21:53:03 -05:00
Nate Brown e1f779aedc v0.0.36 prep 2020-08-31 19:05:13 -05:00
Nate Brown 0fd4d8d7fc Intercept copy to clipboard on chromeos and inject our file contents into the clipboard 2020-08-31 18:33:25 -05:00
Nate Brown eb6ac79eed Wrap SelectableText with keyboard shortcuts to help chromeos 2020-08-31 18:32:40 -05:00
Nate Brown c2a3c256df Upgrade to flutter 1.20.2 2020-08-31 17:00:34 -05:00
Nate Brown d9f4b8b56d Default hostmaps to [] 2020-08-31 16:59:38 -05:00
Nate Brown 38389e99d4 Better share functionality 2020-08-18 17:26:06 -05:00
Nate Brown 646550575d Fix share on ipad, improve share file names 2020-08-17 19:12:28 -05:00
Nate Brown 2bc97856af Transform comma to period if the locale forces commas on the keyboard 2020-08-17 12:30:23 -05:00
Nate Brown 1a4cbceda0 Run check config on app boot, fix early error reporting on android 2020-08-17 11:56:15 -05:00
Nate Brown 50d50f690b Add some protections against the incorrect cert type being used 2020-08-10 10:48:00 -05:00
Nate Brown ca05eff124 Fix links in about, help review 2020-08-07 17:44:40 -05:00
Nate Brown 8a0fdcf0eb Safer defaults in an error event for tunnels, fix the details screen when starting 2020-08-07 16:11:26 -05:00
Nate Brown 36a55e8b86 Minor tweaks on large screens, release with new icon 2020-08-07 11:38:16 -05:00
Nate Brown 9acc4b74ec Update icons and proper case name 2020-08-04 10:35:33 -05:00
Nate Brown b546dd1c9d Initial commit 2020-07-27 15:43:58 -05:00