Go to file
Samuel Holland 5d5cdf54fa ProfileService: Rework profile updating
This should help discourage editing a Profile without making a copy
first, since the caller has to keep track of the old Profile as well.

ProfileAdder has been updated to prevent adding duplicate profiles. It
checks once in the constructor, so the caller can catch the exception
and pass the error back to the UI. It checks again in the worker thread
to prevent any race from happening if a profile is added twice quickly.
Either the file exists, or it doesn't.

Additionally, this change solves the race condition when the old
profile is removed before it is updated; previously this would lead
to the profile being re-added. Now, ProfileRemover will fail and the
profile will stay removed.

Finally, updating a profile's name should now work correctly. There were
previously multiple bugs with that (the old profile wasn't removed, the
new one could duplicate a name, the new one could overwrite some random
other one, etc.).

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2017-08-01 01:38:39 -05:00
app ProfileService: Rework profile updating 2017-08-01 01:38:39 -05:00
cli cli: only call DNS if there is DNS 2017-07-31 22:26:00 +02:00
gradle/wrapper project: Add gradle wrapper 2017-07-28 23:11:24 -05:00
.gitignore project: Create empty project with WireGuard icon 2017-07-28 23:10:37 -05:00
build.gradle project: Create empty project with WireGuard icon 2017-07-28 23:10:37 -05:00
COPYING project: Skeleton with license and readme 2017-07-31 03:00:41 +02:00
gradle.properties project: Create empty project with WireGuard icon 2017-07-28 23:10:37 -05:00
gradlew project: Add gradle wrapper 2017-07-28 23:11:24 -05:00
README.md project: Skeleton with license and readme 2017-07-31 03:00:41 +02:00
settings.gradle project: Create empty project with WireGuard icon 2017-07-28 23:10:37 -05:00

Do not use this code.

This is not a complete implementation of WireGuard. If you're interested in using WireGuard, use the implementation for Linux found here and described on the main wireguard website. There is no group of users that should be using the code in this repository here under any circumstances at the moment, not even beta testers or dare devils. It simply isn't complete. However, if you're interested in assisting with the Android development of WireGuard and contributing to this repository, by all means dig in and help out. But users: stay far away, at least for now.


Android Implementation of WireGuard

This is a work in progress for implementing WireGuard for Android.

License

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as
published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.