3
0
Fork 0
Commit Graph

82 Commits

Author SHA1 Message Date
Nate Brown 6b1bbf7352 Add a defined.net indicator on manual enroll 2022-11-22 10:27:19 -06:00
Caleb Jasik 84d1256656
Fix typos in comments (#100) 2022-11-22 10:20:35 -06:00
Nate Brown 8fc3a40467
Add a manual enrollment flow to support chromeos (#99) 2022-11-22 10:12:38 -06:00
John Maguire 17cc3477b7
Make user agent consistent on iOS and Android (#98)
Instead of Nebula/, Nebula-DEBUG/, and NebulaNetworkExtension/, ensure
that the user agent is always MobileNebula/.
2022-11-21 16:58:02 -05:00
John Maguire 4924888879
Don't require android.hardware.camera feature (#97)
flutter_barcode_scanner pulls in this feature but we only need it to be
optional. This should help expand support on Chromebook devices.
2022-11-21 16:05:19 -05:00
Nate Brown bb457c7c83
Sometimes the list of remotes can be null (#96) 2022-11-21 13:31:58 -06:00
John Maguire a5ec4f5ed5
Allow deletion of managed sites on Android (#94) 2022-11-18 16:18:07 -05:00
John Maguire 974c7a4eed
Refresh Sites when a site is saved (closes #89) (#93)
* Refresh Sites when a site is saved (closes #89)

* Update with iOS side fix
2022-11-18 16:03:52 -05:00
Nate Brown 6108bf801b
Ignore a nil message, nebula hasn't booted yet (#90) 2022-11-18 13:37:15 -06:00
John Maguire 37758d4a01
Request VPN permissions on site start (#92)
Previously VPN permissions were requested when the UI was loaded. If the
user denied the permissions it would have to be force stopped and
reopened to get another permission request grant.

Additionally, when requesting VPN permissions Android will kill any
other running VPN service. This avoids that behavior unless a site is
explicitly started.

Also disables the app from showing up in the "Always On" settings.
2022-11-18 14:34:45 -05:00
John Maguire 9dd5b9cad9
Don't reload Nebula unless config is updated (#91) 2022-11-18 14:27:27 -05:00
John Maguire e4bbd0a31c
Fix majority of Android Studio warnings (#88) 2022-11-17 16:48:44 -05:00
John Maguire a5684e1978
Fix share on Android by moving to flutter share lib (#87)
Co-authored-by: Nate Brown <nbrown.us@gmail.com>
2022-11-17 15:46:06 -06:00
John Maguire c7a53c3905
Support DN host enrollment (#86)
Co-authored-by: Nate Brown <nbrown.us@gmail.com>
2022-11-17 16:43:16 -05:00
John Maguire c3f5c39d83
Update Nebula to fix Android NebulaVpnService bug (#85) 2022-11-17 16:30:03 -05:00
John Maguire 5ec6004a9f
Fix crash on Android 9 and below (#81) 2022-11-08 08:08:07 -07:00
John Maguire 552d16bce2
Improvements to NebulaVpnService (#79) 2022-10-31 12:49:38 -06:00
Nate Brown 7bf9ee553e
Also use 3.3.5 for flutter format action (#78) 2022-10-27 12:12:12 -05:00
Nate Brown 469195cdf7
Upgrade to flutter 3.3.5 to fix a build/release issues (#77) 2022-10-26 11:31:18 -05:00
Nate Brown d8e90a1b4b
Support older versions of android to include chromeos (#76) 2022-10-26 09:57:07 -05:00
Nate Brown 562e715a9a
Strip the useless build number from the tag (#73) 2022-10-03 17:45:56 -05:00
Nate Brown dabca6dd32
Globs 0 or more of any char, not 1 or more of the preceding char (#72) 2022-10-03 16:03:49 -05:00
Nate Brown b29661abff
Automated build and release (#71) 2022-10-03 15:30:39 -05:00
Nate Brown dbe67c2f81
Upgrade to flutter 3 (#70)
Co-authored-by: John Maguire <contact@johnmaguire.me>
2022-09-21 15:27:35 -05:00
Nate Brown e3780bda1e
Show a message on android if permissions were denied (#65) 2022-08-05 16:42:31 -05:00
Nate Brown 958b15d711
Allow import of private key, make it so key material isn't removed when navigating off the add a cert page (#64) 2022-08-05 16:42:17 -05:00
Nate Brown 457952b5ed
Rebind against nebula 1.6 for relays, modernize build (#63) 2022-08-04 19:39:46 -05:00
Nate Brown d37bdd9032
Cleanup (#58) 2022-07-27 11:38:02 -05:00
Nate Brown 64b056618c
Remove special keyboard handling for text inputs (#57) 2022-01-20 10:35:39 -06:00
Nate Brown 2831c84b57
SelectableText field now supports keyboard actions natively (#56) 2022-01-19 13:29:30 -06:00
John Maguire 3e0da2a8f0
Fix log formatting in "Rebinding UDP listener" (#55) 2022-01-18 11:59:41 -05:00
John Maguire fec77613bf
Update for Flutter 2.8.0 (#54) 2022-01-18 11:58:26 -05:00
John Maguire 145a6c9b4f
Mark VPN as unmetered (#53) 2022-01-11 12:09:51 -05:00
Nate Brown 87ce46df19
Update to current master to prepare for 1.5.2 (#50) 2021-12-17 09:53:15 -06:00
Nate Brown 6c188ff1d1
Get ready for ios 15 (#47) 2021-09-21 09:31:26 -05:00
Nate Brown a1694727aa Fix date 2021-06-09 20:31:00 -05:00
Nate Brown 69830d64cd Update changelog for 0.0.41 2021-06-09 20:28:39 -05:00
Nate Brown 93b106fd88
Add a changelog (#43) 2021-06-08 14:41:15 -05:00
Nate Brown cff26eb679 Quiet down rebind logs 2021-06-08 10:10:21 -05:00
Nate Brown de43f11ab2 Update core nebula 2021-06-07 10:26:56 -05:00
Nate Brown bde3f6fdfa
Update core to 1.4 (#41) 2021-05-11 11:03:26 -05:00
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