summaryrefslogtreecommitdiffstatshomepage
path: root/src/tools (follow)
Commit message (Collapse)AuthorAgeFilesLines
* wg-quick: if resolvconf/run/iface exists, use itJason A. Donenfeld2018-03-041-1/+1
| | | | | Some older broken resolvconfs don't support resolvconf -l, but do have a file in a standard location, so use it.
* wg-quick: if resolvconf/interface-order exists, use itJason A. Donenfeld2018-03-041-3/+12
| | | | | | | Some older broken resolvconf implementations ignore -m, but do have an interface-order list. It's better to use this list dynamically, in case it changes, or in case it's not used by the OS's resolvconf implementation, such as in the case of systemd or openresolv.
* global: in gnu code, use un-underscored asmJason A. Donenfeld2018-03-022-2/+2
|
* tools: fixup errno handlingJason A. Donenfeld2018-02-172-8/+8
|
* tools: FreeBSD doesn't have EAI_NODATAJason A. Donenfeld2018-02-171-2/+15
|
* tools: do not collide types with libc clashesJason A. Donenfeld2018-02-171-4/+10
|
* wg(8): clarify phrasingJason A. Donenfeld2018-02-171-3/+3
|
* tools: allow in-line commentsJason A. Donenfeld2018-02-173-11/+17
|
* tools: normalize strncpy/snprintf usageJason A. Donenfeld2018-02-144-18/+22
|
* wg-quick: match from beginning rather than shift rightJason A. Donenfeld2018-02-061-2/+2
| | | | | Before, this meant that it simply took the last 15 characters, instead of erroring out when there's more than 15 chars.
* tools: endian.h is not portableJason A. Donenfeld2018-02-051-4/+9
|
* curve25519: replace fiat64 with faster hacl64Jason A. Donenfeld2018-02-011-3/+3
| | | | | This reverts commit da4ff396cc5d5e0ff21f9ecbc2f951c048c63fff and adds some optimizations to hacl64.
* curve25519: replace hacl64 with fiat64Jason A. Donenfeld2018-02-011-8/+3
| | | | | | | | | | For now, it's faster: hacl64: 109782 cycles per call fiat64: 108984 cycles per call It's quite possible this commit will be reverted with nice changes from INRIA, though.
* tools: dedup secret normalizationJason A. Donenfeld2018-01-311-7/+1
|
* tools: fread doesn't change errnoJason A. Donenfeld2018-01-301-4/+0
| | | | | Thus we might be responding to an old errno, which could cause this to unnecessarily fail.
* tools: share curve25519 implementations with kernelJason A. Donenfeld2018-01-231-1539/+30
|
* curve25519-fiat32: uninline certain functionsJason A. Donenfeld2018-01-181-4/+4
| | | | | | | | | | | While this has a negative performance impact on x86_64, it has a positive performance impact on smaller machines, which is where we're actually using this code. For example, an A53: Before: fiat32: 228605 cycles per call After: fiat32: 188307 cycles per call
* tools: import new curve25519 implementationsJason A. Donenfeld2018-01-181-1129/+1423
|
* tools: plug memleak in config error pathJason A. Donenfeld2018-01-181-0/+1
|
* wg-quick: ifnames have max len of 15Jason A. Donenfeld2018-01-102-3/+3
|
* global: year bumpJason A. Donenfeld2018-01-0325-25/+25
|
* wg-quick: dumber matching for default routesJason A. Donenfeld2017-12-131-1/+1
|
* wg-quick: add the "Table" config optionLuis Ressel2017-12-132-3/+18
| | | | | | | | * Table=auto (default) selects the current behaviour * Table=off disables creation of routes altogether * All other values are passed through to "ip route add"'s table option Signed-off-by: Luis Ressel <aranea@aixah.de>
* global: add SPDX tags to all filesGreg Kroah-Hartman2017-12-0925-50/+89
| | | | | | | | | | | | | It's good to have SPDX identifiers in all files as the Linux kernel developers are working to add these identifiers to all files. Update all files with the correct SPDX license identifier based on the license text of the project or based on the license in the file itself. The SPDX identifier is a legally binding shorthand, which can be used instead of the full boiler plate text. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Modified-by: Jason A. Donenfeld <Jason@zx2c4.com>
* tools: no need to put this on the stackJason A. Donenfeld2017-12-031-1/+1
|
* tools: remove undocumented unused syntaxJason A. Donenfeld2017-12-031-11/+0
|
* tools: fix removing preshared keysJason A. Donenfeld2017-11-231-69/+55
| | | | Also clean up related logic quite a bit and add unit tests.
* global: switch from timeval to timespecJason A. Donenfeld2017-11-223-7/+7
| | | | | | | | | | | | | | | | | | | This gets us nanoseconds instead of microseconds, which is better, and we can do this pretty much without freaking out existing userspace, which doesn't actually make use of the nano/micro seconds field: zx2c4@thinkpad ~ $ cat a.c void main() { puts(sizeof(struct timeval) == sizeof(struct timespec) ? "success" : "failure"); } zx2c4@thinkpad ~ $ gcc a.c -m64 && ./a.out success zx2c4@thinkpad ~ $ gcc a.c -m32 && ./a.out success This doesn't solve y2038 problem, but timespec64 isn't yet a thing in userspace.
* tools: tighten up strtoul parsingJason A. Donenfeld2017-11-172-36/+62
| | | | Reported-by: Cedric Buxin <cedric.buxin@izri.org>
* wg-quick: document localhost exception and v6 ruleJason A. Donenfeld2017-11-121-3/+4
| | | | Reported-by: Hermann Lienstromberg <nurtic-vibe@grmml.net>
* tools: allow for NULL keys everywhereJason A. Donenfeld2017-11-115-29/+50
|
* tools: remove ioctl cruftJason A. Donenfeld2017-11-111-4/+0
|
* wg-quick: allow for tabs in keysJason A. Donenfeld2017-11-101-2/+2
|
* wg-quick: stat the correct enclosing folder of config fileJason A. Donenfeld2017-11-101-1/+2
|
* wg-quick: save all hooks on saveJason A. Donenfeld2017-11-011-5/+13
|
* wg-quick: fsync the temporary file before renamingJason A. Donenfeld2017-10-311-0/+1
| | | | | | | This ensures that on an unclean shutdown, we either see the old content or the new content, but not empty content. Suggested-by: Ka Ho Ng <ngkaho1234@gmail.com>
* wg-quick: allow for saving existing interfaceJason A. Donenfeld2017-10-312-2/+14
|
* tools: correct type for CTRL_ATTR_FAMILY_IDJason A. Donenfeld2017-10-311-4/+4
| | | | Suggested-by: Jörg Thalheim <joerg@thalheim.io>
* wg-quick: allow for the hatchet, but not by defaultJason A. Donenfeld2017-10-311-0/+2
|
* wg-quick: remember to rewind DNS settings on failureJason A. Donenfeld2017-10-311-3/+8
|
* wg-quick: allow specifiying multiple hooksJason A. Donenfeld2017-10-312-18/+21
|
* global: style nitsJason A. Donenfeld2017-10-3110-110/+201
|
* global: infuriating kernel iterator styleJason A. Donenfeld2017-10-314-19/+19
| | | | | | | | | | | | | | | | | One types: for (i = 0 ... So one should also type: for_each_obj (obj ... But the upstream kernel style guidelines are insane, and so we must instead do: for_each_obj(obj ... Ugly, but one must choose his battles wisely.
* tools: account for padding being in zero attributeJason A. Donenfeld2017-10-171-0/+6
|
* tools: newline after warningJason A. Donenfeld2017-10-171-1/+1
|
* tools: styleJason A. Donenfeld2017-10-171-1/+1
|
* tools: add pass example to wg-quick man pageJason A. Donenfeld2017-10-171-22/+9
|
* tools: don't insist on having a private keyJason A. Donenfeld2017-10-171-5/+0
| | | | | | | | | | This lets us do flexible things from wg-quick such as: PostUp = wg set %i private-key <(pass WireGuard/private-keys/%i) It also was never a very sensible policy to enforce. Suggested-by: Luis Ressel <aranea@aixah.de>
* tools: retry resolution except when fatalJason A. Donenfeld2017-10-173-21/+23
| | | | | | | | | | | | | | | | | | | The reference to this is <https://sourceware.org/glibc/wiki/NameResolver>, which mentions: "From the perspective of the application that calls getaddrinfo() it perhaps doesn't matter that much since EAI_FAIL, EAI_NONAME and EAI_NODATA are all permanent failure codes and the causes are all permanent failures in the sense that there is no point in retrying later." This should cover more early-boot situations. While we're at it, we clean up the logic a bit so that we don't have a retry message on the final non-retrying attempt. We also peer into errno when receiving EAI_SYSTEM, to report to the user what actually happened. Also, fix the quoting back tick front tick mess.
* tools: encoding: be more paranoidJason A. Donenfeld2017-10-171-2/+2
| | | | Needless, but overkill can be fun.