aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/uapi.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* hashtables: allow up to 2^{20} peers per interfaceJason A. Donenfeld2017-08-081-2/+2
| | | | | | | | | | | | | | | This allows for nearly 1 million peers per interface, which should be more than enough. If needed later, this number could easily be increased beyond this. We also increase the size of the hashtables to accommodate this upper bound. In the future, it might be smart to dynamically expand the hashtable instead of this hard coded compromise value between small systems and large systems. Ongoing work includes figuring out the most optimal scheme for these hashtables and for the insertion to mask their order from timing inference.
* noise: redesign preshared key modeJason A. Donenfeld2017-05-171-5/+6
|
* tools: no hyphen in preshared, to keep uniformityJason A. Donenfeld2017-04-201-2/+2
|
* uapi: add version magicJason A. Donenfeld2017-03-241-0/+6
|
* socket: enable setting of fwmarkJason A. Donenfeld2017-02-131-2/+4
|
* Update copyrightJason A. Donenfeld2017-01-101-1/+1
|
* uapi: use sockaddr union instead of sockaddr_storageJason A. Donenfeld2017-01-101-1/+5
|
* uapi: use flag instead of C bitfield for portabilityJason A. Donenfeld2017-01-101-14/+17
|
* uapi: add missing userspace headersJames Tucker2017-01-101-0/+2
| | | | Signed-off-by: James Tucker <jftucker@gmail.com>
* headers: cleanup noticesJason A. Donenfeld2016-11-211-1/+1
|
* uapi.h: public_key field is a getterJörg Thalheim2016-10-221-1/+1
| | | | Signed-off-by: Jörg Thalheim <joerg@higgsboson.tk>
* uapi: typeof is not necessaryJason A. Donenfeld2016-08-021-4/+4
|
* tools: Use seqpacket instead of dgramJason A. Donenfeld2016-07-221-0/+16
|
* tools: first additions of userspace integrationJason A. Donenfeld2016-07-201-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is designed to work with a server that follows this: struct sockaddr_un addr = { .sun_family = AF_UNIX, .sun_path = "/var/run/wireguard/wguserspace0.sock" }; int fd, ret; ssize_t len; socklen_t socklen; struct wgdevice *device; fd = socket(AF_UNIX, SOCK_DGRAM, 0); if (fd < 0) exit(1); if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) exit(1); for (;;) { /* First we look at how big the next message is, so we know how much to * allocate. Note on BSD you can instead use ioctl(fd, FIONREAD, &len). */ len = recv(fd, NULL, 0, MSG_PEEK | MSG_TRUNC); if (len < 0) { handle_error(); continue; } /* Next we allocate a buffer for the received data. */ device = NULL; if (len) { device = malloc(len); if (!device) { handle_error(); continue; } } /* Finally we receive the data, storing too the return address. */ socklen = sizeof(addr); len = recvfrom(fd, device, len, 0, (struct sockaddr *)&addr, (socklen_t *)&socklen); if (len < 0) { handle_error(); free(device); continue; } if (!len) { /* If len is zero, it's a "get" request, so we send our device back. */ device = get_current_wireguard_device(&len); sendto(fd, device, len, 0, (struct sockaddr *)&addr, socklen); } else { /* Otherwise, we just received a wgdevice, so we should "set" and send back the return status. */ ret = set_current_wireguard_device(device); sendto(fd, &ret, sizeof(ret), 0, (struct sockaddr *)&addr, socklen); free(device); } }
* persistent keepalive: add kernel mechanismJason A. Donenfeld2016-07-081-0/+1
|
* Initial commitJason A. Donenfeld2016-06-251-0/+122