Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package wireguard-tools for openSUSE:Factory
checked in at 2021-02-25 18:30:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wireguard-tools (Old)
and /work/SRC/openSUSE:Factory/.wireguard-tools.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wireguard-tools"
Thu Feb 25 18:30:03 2021 rev:9 rq:875062 version:1.0.20210223
Changes:
--------
--- /work/SRC/openSUSE:Factory/wireguard-tools/wireguard-tools.changes
2020-08-29 20:39:16.789387893 +0200
+++
/work/SRC/openSUSE:Factory/.wireguard-tools.new.2378/wireguard-tools.changes
2021-02-25 18:30:06.934284856 +0100
@@ -1,0 +2,11 @@
+Tue Feb 23 20:12:15 UTC 2021 - Martin Hauke <[email protected]>
+
+- Update to version 1.0.20210223
+ * embeddable-wg-library: sync latest from netlink.h
+ * completion: add help and syncconf completions
+ * sticky-sockets: do not use SO_REUSEADDR
+ * man: LOG_LEVEL variables changed name
+ * ipc: do not use fscanf with trailing \n
+ * ipc: read trailing responses after set operation
+
+-------------------------------------------------------------------
Old:
----
wireguard-tools-1.0.20200827.tar.asc
wireguard-tools-1.0.20200827.tar.xz
New:
----
wireguard-tools-1.0.20210223.tar.asc
wireguard-tools-1.0.20210223.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ wireguard-tools.spec ++++++
--- /var/tmp/diff_new_pack.RGyR53/_old 2021-02-25 18:30:07.822285433 +0100
+++ /var/tmp/diff_new_pack.RGyR53/_new 2021-02-25 18:30:07.830285439 +0100
@@ -1,7 +1,7 @@
#
# spec file for package wireguard-tools
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
# Copyright (c) 2020, Martin Hauke <[email protected]>
#
# All modifications and additions to the file contributed by third parties
@@ -18,7 +18,7 @@
Name: wireguard-tools
-Version: 1.0.20200827
+Version: 1.0.20210223
Release: 0
Summary: WireGuard userspace tools
License: GPL-2.0-only
++++++ WireGuard.keyring ++++++
--- /var/tmp/diff_new_pack.RGyR53/_old 2021-02-25 18:30:07.874285467 +0100
+++ /var/tmp/diff_new_pack.RGyR53/_new 2021-02-25 18:30:07.878285470 +0100
@@ -11,20 +11,20 @@
idMmAQMxAmhnQCqwSjIXzv1Gv4NeVGze+/t28zUQInTZyZmxi5niMiz0NUeLqREX
bepmUJulYPeXrty/6/7N6jkakXp7kNGIK2Zigadca/18x9H5DgEXHl0eW7ZOgSUH
qQmmnvNNrArhYXlckYapIAZhwLJDGgv3ZhRyYRCEQ9BktVcE0+2R6zb3GQARAQAB
-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
+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
-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
+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
@@ -429,18 +429,18 @@
40qRcF5c91RGAKjsWb26zkPtHvGAZK6sacoASPhsP8kDJIdSj1LbMDci86EOPjLp
dXw76QCeOMCBWQ5yK6++8c3ye4ega9JuqOU4p2hfOzsXdULK2Nm2tFHxM2vGrTJj
f5MHB3c1uJbycs8xq/rJL4bDHU4/6nclZgsq/xehaFMhq6vQvlsN4l40m1eYOYvz
-parqwVSz8MPM3QARAQABiQI8BBgBAgAmAhsMFiEEq5lC5tSkz8NBJiCnSfxwEqXe
-A64FAlp2RHQFCRLnvAQACgkQSfxwEqXeA65YLhAAqB1N0Aeqe202Nh3RDEU6c9Pq
-XhPjmCXQfP9SSqrVv6HZEwkJqHXCQ9QDtI8OTRnBa9EsiM4F8a8RYAgUzRgzSKBP
-g4MPTZurF8A5HrqMhFhzBj3QGANHWvEfVR5iQBvXszJR84IKYFzEeQ07NerrCKq4
-Rv4BhIL0Fipd7JxPiA4hjy0fFcIBeoNXTRF78Aiob5zO9NAga0Km25pS/iTVQ9Kv
-CqoLRmn9b6naA1k2pbK6nxy7rEVKCTi5CXJ2sSZ8e5hqAUEoxi7g1pUIYPpWkK/x
-/qYE2zgL30zyyDEDVCQz4OBXp6BtrjJQGnQxCiZ7MqNI25T7mhO2/VQSBQB4K0Tt
-vw4It/95VAv7K2bT1qfsnXtdAYBWnQoM/423H6A9lKvLjifJ6LUhR5KsLuVB/09K
-mQ3fB+ByIAwqyIDrdlmiK4j/99e8b+Z6gwk/5u8ilcZ/1Gm7uBluQRYC79Y1Aq5j
-SnixjWJzesYNXY0fYaw+wb6IuHzlPhJ6w5rJV69V2c465+a4nLGOXs8g9ZSjxVxJ
-zF94HVZClc7AcdGZoZBRortamcxnlnyzAzzR5gGSzezr5f6BL+2lX1s8wGgMuJBz
-ybrRaCkmCfTI3wIhZWPV4ooTTCdmS/HLChBjROgAtH4gK384elgTFFNMRUZVRPw/
-P1KnZADhMyvGjSc88Ko=
-=Njos
+parqwVSz8MPM3QARAQABiQI8BBgBCAAmAhsMFiEEq5lC5tSkz8NBJiCnSfxwEqXe
+A64FAmAlNBMFCRTURKMACgkQSfxwEqXeA65+3g//SgI2/VdnR/c8frd9/1Y/DeyM
+fRvF/YHWzTTQW8Gd1ZBC/Ajfg9kWw/ly6Z66GNw12E9QJ6i96g0azAZPjGMyLqUj
+b5F5V2ujTAG9AUhiG07oALewn0mc0DXY7tIVY3c6bAlvU0FY2tFtwmy7A5Ep7Bpw
+40VUDUrJVKZBbDuZuZEH83u8K70t15owgDhD2rL6NXRd7VJKrtnEmlBUNqfreIw7
+PPOpIsB2/EeTsKaw0V7XWCmt+xS/xE1ioBk62VGaRYECNkGvQDHNaM4gXUkEsXxe
+eLGd4GBrDMl32RRPNXgPtJv+X/oSVzZBiNBS5JgrDePbDV1kgz54xHYTaxesoT29
+ZipRXDcGbvVmSAsQsaTF3LTZk0c+Q0Hjne8wK/DIrcduk5zbQawxOTAJfQ4Yzcom
+oORi4lyR4mIKOZs2U/A+QBrS9f6BWnA4PawFbmlc+s5XslLrx85Y5ZAJrlTTtzbt
+t285kSzR4uyM0j5stbHXxZf3sJsQmrkfZNU3TKjhCJfAGsVzhTt04RvBLhSNrBK/
+06HNmy67R09YQ4fRyqGJrqxs8nROuyo48rUaVIoIuR6zk1CCXhZx5E50IDOdU0nr
+zNQP3yQ8UY9xr48fu5YVYiDtRmJn86swhO2ucfcEl5akKmaNyZK/3IbknfUxzmft
+nL4R5Qie03YIFHrDh/4=
+=GTxh
-----END PGP PUBLIC KEY BLOCK-----
++++++ wireguard-tools-1.0.20200827.tar.xz ->
wireguard-tools-1.0.20210223.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wireguard-tools-1.0.20200827/contrib/embeddable-wg-library/wireguard.c
new/wireguard-tools-1.0.20210223/contrib/embeddable-wg-library/wireguard.c
--- old/wireguard-tools-1.0.20200827/contrib/embeddable-wg-library/wireguard.c
2020-08-27 10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/contrib/embeddable-wg-library/wireguard.c
2021-02-23 19:32:18.000000000 +0100
@@ -81,7 +81,6 @@
/* libmnl mini library: */
#define MNL_SOCKET_AUTOPID 0
-#define MNL_SOCKET_BUFFER_SIZE (sysconf(_SC_PAGESIZE) < 8192L ?
sysconf(_SC_PAGESIZE) : 8192L)
#define MNL_ALIGNTO 4
#define MNL_ALIGN(len) (((len)+MNL_ALIGNTO-1) & ~(MNL_ALIGNTO-1))
#define MNL_NLMSG_HDRLEN MNL_ALIGN(sizeof(struct nlmsghdr))
@@ -129,6 +128,18 @@
#define MNL_ARRAY_SIZE(a) (sizeof(a)/sizeof((a)[0]))
#endif
+static size_t mnl_ideal_socket_buffer_size(void)
+{
+ static size_t size = 0;
+
+ if (size)
+ return size;
+ size = (size_t)sysconf(_SC_PAGESIZE);
+ if (size > 8192)
+ size = 8192;
+ return size;
+}
+
static size_t mnl_nlmsg_size(size_t len)
{
return len + MNL_NLMSG_HDRLEN;
@@ -163,7 +174,6 @@
return (void *)nlh + MNL_NLMSG_HDRLEN + MNL_ALIGN(offset);
}
-
static bool mnl_nlmsg_ok(const struct nlmsghdr *nlh, int len)
{
return len >= (int)sizeof(struct nlmsghdr) &&
@@ -341,7 +351,6 @@
return *((uint32_t *)mnl_attr_get_payload(attr));
}
-
static uint64_t mnl_attr_get_u64(const struct nlattr *attr)
{
uint64_t tmp;
@@ -409,14 +418,12 @@
return mnl_attr_put_check(nlh, buflen, type, sizeof(uint8_t), &data);
}
-
static bool mnl_attr_put_u16_check(struct nlmsghdr *nlh, size_t buflen,
uint16_t type, uint16_t data)
{
return mnl_attr_put_check(nlh, buflen, type, sizeof(uint16_t), &data);
}
-
static bool mnl_attr_put_u32_check(struct nlmsghdr *nlh, size_t buflen,
uint16_t type, uint32_t data)
{
@@ -441,12 +448,12 @@
nlh->nlmsg_len -= mnl_nlmsg_get_payload_tail(nlh) - (void *)start;
}
-static int mnl_cb_noop(const struct nlmsghdr *nlh, void *data)
+static int mnl_cb_noop(__attribute__((unused)) const struct nlmsghdr *nlh,
__attribute__((unused)) void *data)
{
return MNL_CB_OK;
}
-static int mnl_cb_error(const struct nlmsghdr *nlh, void *data)
+static int mnl_cb_error(const struct nlmsghdr *nlh, __attribute__((unused))
void *data)
{
const struct nlmsgerr *err = mnl_nlmsg_get_payload(nlh);
@@ -463,7 +470,7 @@
return err->error == 0 ? MNL_CB_STOP : MNL_CB_ERROR;
}
-static int mnl_cb_stop(const struct nlmsghdr *nlh, void *data)
+static int mnl_cb_stop(__attribute__((unused)) const struct nlmsghdr *nlh,
__attribute__((unused)) void *data)
{
return MNL_CB_STOP;
}
@@ -496,13 +503,11 @@
return -1;
}
-
if (nlh->nlmsg_flags & NLM_F_DUMP_INTR) {
errno = EINTR;
return -1;
}
-
if (nlh->nlmsg_type >= NLMSG_MIN_TYPE) {
if (cb_data){
ret = cb_data(nlh, data);
@@ -572,7 +577,6 @@
return __mnl_socket_open(bus, 0);
}
-
static int mnl_socket_bind(struct mnl_socket *nl, unsigned int groups, pid_t
pid)
{
int ret;
@@ -602,7 +606,6 @@
return 0;
}
-
static ssize_t mnl_socket_sendto(const struct mnl_socket *nl, const void *buf,
size_t len)
{
@@ -613,7 +616,6 @@
(struct sockaddr *) &snl, sizeof(snl));
}
-
static ssize_t mnl_socket_recvfrom(const struct mnl_socket *nl, void *buf,
size_t bufsiz)
{
@@ -750,7 +752,7 @@
do {
err = mnl_socket_recvfrom(nlg->nl, nlg->buf,
- MNL_SOCKET_BUFFER_SIZE);
+ mnl_ideal_socket_buffer_size());
if (err <= 0)
break;
err = mnl_cb_run2(nlg->buf, err, nlg->seq, nlg->portid,
@@ -796,9 +798,10 @@
nlg = malloc(sizeof(*nlg));
if (!nlg)
return NULL;
+ nlg->id = 0;
err = -ENOMEM;
- nlg->buf = malloc(MNL_SOCKET_BUFFER_SIZE);
+ nlg->buf = malloc(mnl_ideal_socket_buffer_size());
if (!nlg->buf)
goto err_buf_alloc;
@@ -942,7 +945,7 @@
struct ifinfomsg *ifm;
ret = -ENOMEM;
- rtnl_buffer = calloc(MNL_SOCKET_BUFFER_SIZE, 1);
+ rtnl_buffer = calloc(mnl_ideal_socket_buffer_size(), 1);
if (!rtnl_buffer)
goto cleanup;
@@ -973,7 +976,7 @@
}
another:
- if ((len = mnl_socket_recvfrom(nl, rtnl_buffer,
MNL_SOCKET_BUFFER_SIZE)) < 0) {
+ if ((len = mnl_socket_recvfrom(nl, rtnl_buffer,
mnl_ideal_socket_buffer_size())) < 0) {
ret = -errno;
goto cleanup;
}
@@ -1009,7 +1012,7 @@
struct ifinfomsg *ifm;
struct nlattr *nest;
- rtnl_buffer = calloc(MNL_SOCKET_BUFFER_SIZE, 1);
+ rtnl_buffer = calloc(mnl_ideal_socket_buffer_size(), 1);
if (!rtnl_buffer) {
ret = -ENOMEM;
goto cleanup;
@@ -1041,7 +1044,7 @@
ret = -errno;
goto cleanup;
}
- if ((len = mnl_socket_recvfrom(nl, rtnl_buffer,
MNL_SOCKET_BUFFER_SIZE)) < 0) {
+ if ((len = mnl_socket_recvfrom(nl, rtnl_buffer,
mnl_ideal_socket_buffer_size())) < 0) {
ret = -errno;
goto cleanup;
}
@@ -1096,10 +1099,10 @@
for (peer = peer ? peer : dev->first_peer; peer; peer =
peer->next_peer) {
uint32_t flags = 0;
- peer_nest = mnl_attr_nest_start_check(nlh,
MNL_SOCKET_BUFFER_SIZE, 0);
+ peer_nest = mnl_attr_nest_start_check(nlh,
mnl_ideal_socket_buffer_size(), 0);
if (!peer_nest)
goto toobig_peers;
- if (!mnl_attr_put_check(nlh, MNL_SOCKET_BUFFER_SIZE,
WGPEER_A_PUBLIC_KEY, sizeof(peer->public_key), peer->public_key))
+ if (!mnl_attr_put_check(nlh, mnl_ideal_socket_buffer_size(),
WGPEER_A_PUBLIC_KEY, sizeof(peer->public_key), peer->public_key))
goto toobig_peers;
if (peer->flags & WGPEER_REMOVE_ME)
flags |= WGPEER_F_REMOVE_ME;
@@ -1107,45 +1110,45 @@
if (peer->flags & WGPEER_REPLACE_ALLOWEDIPS)
flags |= WGPEER_F_REPLACE_ALLOWEDIPS;
if (peer->flags & WGPEER_HAS_PRESHARED_KEY) {
- if (!mnl_attr_put_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGPEER_A_PRESHARED_KEY, sizeof(peer->preshared_key),
peer->preshared_key))
+ if (!mnl_attr_put_check(nlh,
mnl_ideal_socket_buffer_size(), WGPEER_A_PRESHARED_KEY,
sizeof(peer->preshared_key), peer->preshared_key))
goto toobig_peers;
}
if (peer->endpoint.addr.sa_family == AF_INET) {
- if (!mnl_attr_put_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGPEER_A_ENDPOINT, sizeof(peer->endpoint.addr4),
&peer->endpoint.addr4))
+ if (!mnl_attr_put_check(nlh,
mnl_ideal_socket_buffer_size(), WGPEER_A_ENDPOINT,
sizeof(peer->endpoint.addr4), &peer->endpoint.addr4))
goto toobig_peers;
} else if (peer->endpoint.addr.sa_family == AF_INET6) {
- if (!mnl_attr_put_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGPEER_A_ENDPOINT, sizeof(peer->endpoint.addr6),
&peer->endpoint.addr6))
+ if (!mnl_attr_put_check(nlh,
mnl_ideal_socket_buffer_size(), WGPEER_A_ENDPOINT,
sizeof(peer->endpoint.addr6), &peer->endpoint.addr6))
goto toobig_peers;
}
if (peer->flags &
WGPEER_HAS_PERSISTENT_KEEPALIVE_INTERVAL) {
- if (!mnl_attr_put_u16_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
peer->persistent_keepalive_interval))
+ if (!mnl_attr_put_u16_check(nlh,
mnl_ideal_socket_buffer_size(), WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL,
peer->persistent_keepalive_interval))
goto toobig_peers;
}
}
if (flags) {
- if (!mnl_attr_put_u32_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGPEER_A_FLAGS, flags))
+ if (!mnl_attr_put_u32_check(nlh,
mnl_ideal_socket_buffer_size(), WGPEER_A_FLAGS, flags))
goto toobig_peers;
}
if (peer->first_allowedip) {
if (!allowedip)
allowedip = peer->first_allowedip;
- allowedips_nest = mnl_attr_nest_start_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGPEER_A_ALLOWEDIPS);
+ allowedips_nest = mnl_attr_nest_start_check(nlh,
mnl_ideal_socket_buffer_size(), WGPEER_A_ALLOWEDIPS);
if (!allowedips_nest)
goto toobig_allowedips;
for (; allowedip; allowedip =
allowedip->next_allowedip) {
- allowedip_nest = mnl_attr_nest_start_check(nlh,
MNL_SOCKET_BUFFER_SIZE, 0);
+ allowedip_nest = mnl_attr_nest_start_check(nlh,
mnl_ideal_socket_buffer_size(), 0);
if (!allowedip_nest)
goto toobig_allowedips;
- if (!mnl_attr_put_u16_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGALLOWEDIP_A_FAMILY, allowedip->family))
+ if (!mnl_attr_put_u16_check(nlh,
mnl_ideal_socket_buffer_size(), WGALLOWEDIP_A_FAMILY, allowedip->family))
goto toobig_allowedips;
if (allowedip->family == AF_INET) {
- if (!mnl_attr_put_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGALLOWEDIP_A_IPADDR, sizeof(allowedip->ip4),
&allowedip->ip4))
+ if (!mnl_attr_put_check(nlh,
mnl_ideal_socket_buffer_size(), WGALLOWEDIP_A_IPADDR, sizeof(allowedip->ip4),
&allowedip->ip4))
goto toobig_allowedips;
} else if (allowedip->family == AF_INET6) {
- if (!mnl_attr_put_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGALLOWEDIP_A_IPADDR, sizeof(allowedip->ip6),
&allowedip->ip6))
+ if (!mnl_attr_put_check(nlh,
mnl_ideal_socket_buffer_size(), WGALLOWEDIP_A_IPADDR, sizeof(allowedip->ip6),
&allowedip->ip6))
goto toobig_allowedips;
}
- if (!mnl_attr_put_u8_check(nlh,
MNL_SOCKET_BUFFER_SIZE, WGALLOWEDIP_A_CIDR_MASK, allowedip->cidr))
+ if (!mnl_attr_put_u8_check(nlh,
mnl_ideal_socket_buffer_size(), WGALLOWEDIP_A_CIDR_MASK, allowedip->cidr))
goto toobig_allowedips;
mnl_attr_nest_end(nlh, allowedip_nest);
allowedip_nest = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wireguard-tools-1.0.20200827/contrib/sticky-sockets/sticky-sockets.c
new/wireguard-tools-1.0.20210223/contrib/sticky-sockets/sticky-sockets.c
--- old/wireguard-tools-1.0.20200827/contrib/sticky-sockets/sticky-sockets.c
2020-08-27 10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/contrib/sticky-sockets/sticky-sockets.c
2021-02-23 19:32:18.000000000 +0100
@@ -195,10 +195,6 @@
if (fd < 0)
return fd;
- ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
- if (ret < 0)
- goto err;
-
ret = setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &on, sizeof(on));
if (ret < 0)
goto err;
@@ -228,10 +224,6 @@
if (fd < 0)
return fd;
- ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
- if (ret < 0)
- goto err;
-
ret = setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &on, sizeof(on));
if (ret < 0)
goto err;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wireguard-tools-1.0.20200827/src/Makefile
new/wireguard-tools-1.0.20210223/src/Makefile
--- old/wireguard-tools-1.0.20200827/src/Makefile 2020-08-27
10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/Makefile 2021-02-23
19:32:18.000000000 +0100
@@ -57,9 +57,13 @@
endif
ifeq ($(PLATFORM),windows)
CC := x86_64-w64-mingw32-gcc
-CFLAGS += -Iwincompat/include -include wincompat/compat.h
-LDLIBS += -lws2_32
-wg: wincompat/libc.o wincompat/init.o
+WINDRES := x86_64-w64-mingw32-windres
+CFLAGS += -Iwincompat/include -include wincompat/compat.h -DWINVER=0x0601
-D_WIN32_WINNT=0x0601 -flto
+LDLIBS += -lws2_32 -flto
+VERSION := $(patsubst "%",%,$(filter "%",$(file < version.h)))
+wg: wincompat/libc.o wincompat/init.o wincompat/resources.o
+wincompat/resources.o: wincompat/resources.rc wincompat/manifest.xml
+ $(WINDRES) -DVERSION_STR=$(VERSION) -O coff -c 65001 -i $< -o $@
endif
ifneq ($(V),1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wireguard-tools-1.0.20200827/src/completion/wg.bash-completion
new/wireguard-tools-1.0.20210223/src/completion/wg.bash-completion
--- old/wireguard-tools-1.0.20200827/src/completion/wg.bash-completion
2020-08-27 10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/completion/wg.bash-completion
2021-02-23 19:32:18.000000000 +0100
@@ -5,12 +5,12 @@
local a
if [[ $COMP_CWORD -eq 1 ]]; then
- COMPREPLY+=( $(compgen -W "show showconf set setconf addconf
genkey genpsk pubkey" -- "${COMP_WORDS[1]}") )
+ COMPREPLY+=( $(compgen -W "help show showconf set setconf
addconf syncconf genkey genpsk pubkey" -- "${COMP_WORDS[1]}") )
return
fi
case "${COMP_WORDS[1]}" in
genkey|genpsk|pubkey|help) return; ;;
- show|showconf|set|setconf|addconf) ;;
+ show|showconf|set|setconf|addconf|syncconf) ;;
*) return;
esac
@@ -26,7 +26,7 @@
return
fi
- if [[ $COMP_CWORD -eq 3 && ( ${COMP_WORDS[1]} == setconf ||
${COMP_WORDS[1]} == addconf ) ]]; then
+ if [[ $COMP_CWORD -eq 3 && ( ${COMP_WORDS[1]} == setconf ||
${COMP_WORDS[1]} == addconf || ${COMP_WORDS[1]} == syncconf) ]]; then
compopt -o filenames
mapfile -t a < <(compgen -f -- "${COMP_WORDS[3]}")
COMPREPLY+=( "${a[@]}" )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wireguard-tools-1.0.20200827/src/ipc-uapi.h
new/wireguard-tools-1.0.20210223/src/ipc-uapi.h
--- old/wireguard-tools-1.0.20200827/src/ipc-uapi.h 2020-08-27
10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/ipc-uapi.h 2021-02-23
19:32:18.000000000 +0100
@@ -5,6 +5,7 @@
#include <arpa/inet.h>
#include <errno.h>
+#include <limits.h>
#include <net/if.h>
#include <netdb.h>
#include <netinet/in.h>
@@ -30,8 +31,10 @@
struct wgpeer *peer;
struct wgallowedip *allowedip;
FILE *f;
- int ret;
+ int ret, set_errno = -EPROTO;
socklen_t addr_len;
+ size_t line_buffer_len = 0, line_len;
+ char *key = NULL, *value;
f = userspace_interface_file(dev->name);
if (!f)
@@ -92,8 +95,30 @@
fprintf(f, "\n");
fflush(f);
- if (fscanf(f, "errno=%d\n\n", &ret) != 1)
- ret = errno ? -errno : -EPROTO;
+ while (getline(&key, &line_buffer_len, f) > 0) {
+ line_len = strlen(key);
+ ret = set_errno;
+ if (line_len == 1 && key[0] == '\n')
+ goto out;
+ value = strchr(key, '=');
+ if (!value || line_len == 0 || key[line_len - 1] != '\n')
+ break;
+ *value++ = key[--line_len] = '\0';
+
+ if (!strcmp(key, "errno")) {
+ long long num;
+ char *end;
+ if (value[0] != '-' && !char_is_digit(value[0]))
+ break;
+ num = strtoll(value, &end, 10);
+ if (*end || num > INT_MAX || num < INT_MIN)
+ break;
+ set_errno = num;
+ }
+ }
+ ret = errno ? -errno : -EPROTO;
+out:
+ free(key);
fclose(f);
errno = -ret;
return ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wireguard-tools-1.0.20200827/src/man/wg.8
new/wireguard-tools-1.0.20210223/src/man/wg.8
--- old/wireguard-tools-1.0.20200827/src/man/wg.8 2020-08-27
10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/man/wg.8 2021-02-23
19:32:18.000000000 +0100
@@ -219,7 +219,7 @@
\fB # modprobe wireguard && echo module wireguard +p >
/sys/kernel/debug/dynamic_debug/control\fP
-On userspace implementations, it is customary to set the \fILOG_LEVEL\fP
environment variable to \fIdebug\fP.
+On userspace implementations, it is customary to set the \fILOG_LEVEL\fP
environment variable to \fIverbose\fP.
.SH ENVIRONMENT VARIABLES
.TP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wireguard-tools-1.0.20200827/src/version.h
new/wireguard-tools-1.0.20210223/src/version.h
--- old/wireguard-tools-1.0.20200827/src/version.h 2020-08-27
10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/version.h 2021-02-23
19:32:18.000000000 +0100
@@ -1,3 +1,3 @@
#ifndef WIREGUARD_TOOLS_VERSION
-#define WIREGUARD_TOOLS_VERSION "1.0.20200827"
+#define WIREGUARD_TOOLS_VERSION "1.0.20210223"
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wireguard-tools-1.0.20200827/src/wg-quick/android.c
new/wireguard-tools-1.0.20210223/src/wg-quick/android.c
--- old/wireguard-tools-1.0.20200827/src/wg-quick/android.c 2020-08-27
10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/wg-quick/android.c 2021-02-23
19:32:18.000000000 +0100
@@ -785,6 +785,7 @@
static void set_users(unsigned int netid, const char *excluded_applications,
const char *included_applications)
{
_cleanup_free_ uid_t *uids = NULL;
+ uid_t *uid;
unsigned int args_per_command = 0;
_cleanup_free_ char *ranges = NULL;
char range[22];
@@ -796,14 +797,14 @@
}
if (excluded_applications || !included_applications) {
- uids = get_uid_list(excluded_applications);
- for (start = 0; *uids; start = *uids + 1, ++uids) {
- if (start > *uids - 1)
+ uid = uids = get_uid_list(excluded_applications);
+ for (start = 0; *uid; start = *uid + 1, ++uid) {
+ if (start > *uid - 1)
continue;
- else if (start == *uids - 1)
+ else if (start == *uid - 1)
snprintf(range, sizeof(range), "%u", start);
else
- snprintf(range, sizeof(range), "%u-%u", start,
*uids - 1);
+ snprintf(range, sizeof(range), "%u-%u", start,
*uid - 1);
ranges = concat_and_free(ranges, " ", range);
if (++args_per_command % 18 == 0) {
cndc("network users add %u %s", netid, ranges);
@@ -816,8 +817,8 @@
ranges = concat_and_free(ranges, " ", range);
}
} else {
- for (uids = get_uid_list(included_applications); *uids; ++uids)
{
- snprintf(range, sizeof(range), "%u", *uids);
+ for (uid = uids = get_uid_list(included_applications); *uid;
++uid) {
+ snprintf(range, sizeof(range), "%u", *uid);
ranges = concat_and_free(ranges, " ", range);
if (++args_per_command % 18 == 0) {
cndc("network users add %u %s", netid, ranges);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wireguard-tools-1.0.20200827/src/wg-quick/openbsd.bash
new/wireguard-tools-1.0.20210223/src/wg-quick/openbsd.bash
--- old/wireguard-tools-1.0.20200827/src/wg-quick/openbsd.bash 2020-08-27
10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/wg-quick/openbsd.bash 2021-02-23
19:32:18.000000000 +0100
@@ -88,42 +88,33 @@
get_real_interface() {
- local interface diff
- wg show interfaces >/dev/null
- [[ -f "/var/run/wireguard/$INTERFACE.name" ]] || return 1
- interface="$(< "/var/run/wireguard/$INTERFACE.name")"
- if [[ $interface != wg* ]]; then
- [[ -n $interface && -S "/var/run/wireguard/$interface.sock" ]]
|| return 1
- diff=$(( $(stat -f %m "/var/run/wireguard/$interface.sock"
2>/dev/null || echo 200) - $(stat -f %m "/var/run/wireguard/$INTERFACE.name"
2>/dev/null || echo 100) ))
- [[ $diff -ge 2 || $diff -le -2 ]] && return 1
- echo "[+] Tun interface for $INTERFACE is $interface" >&2
- else
- [[ " $(wg show interfaces) " == *" $interface "* ]] || return 1
- fi
- REAL_INTERFACE="$interface"
- return 0
+ local interface line
+ while IFS= read -r line; do
+ if [[ $line =~ ^([a-z]+[0-9]+):\ .+ ]]; then
+ interface="${BASH_REMATCH[1]}"
+ continue
+ fi
+ if [[ $interface == wg* && $line =~ ^\ description:\
wg-quick:\ (.+) && ${BASH_REMATCH[1]} == "$INTERFACE" ]]; then
+ REAL_INTERFACE="$interface"
+ return 0
+ fi
+ done < <(ifconfig)
+ return 1
}
add_if() {
- local index=0 ret
while true; do
- if ret="$(cmd ifconfig wg$index create 2>&1)"; then
- mkdir -p "/var/run/wireguard/"
- echo wg$index > /var/run/wireguard/$INTERFACE.name
- get_real_interface
+ local -A existing_ifs="( $(wg show interfaces | sed 's/\([^
]*\)/[\1]=1/g') )"
+ local index ret
+ for ((index=0; index <= 2147483647; ++index)); do [[ -v
existing_ifs[wg$index] ]] || break; done
+ if ret="$(cmd ifconfig wg$index create description "wg-quick:
$INTERFACE" 2>&1)"; then
+ REAL_INTERFACE="wg$index"
return 0
fi
- if [[ $ret != *"ifconfig: SIOCIFCREATE: File exists"* ]]; then
- echo "[!] Missing WireGuard kernel support ($ret).
Falling back to slow userspace implementation." >&3
- break
- fi
- echo "[+] wg$index in use, trying next"
- ((++index))
+ [[ $ret == *"ifconfig: SIOCIFCREATE: File exists"* ]] &&
continue
+ echo "$ret" >&3
+ return 1
done
- export WG_TUN_NAME_FILE="/var/run/wireguard/$INTERFACE.name"
- mkdir -p "/var/run/wireguard/"
- cmd "${WG_QUICK_USERSPACE_IMPLEMENTATION:-wireguard-go}" tun
- get_real_interface
}
del_routes() {
@@ -153,12 +144,7 @@
del_if() {
unset_dns
- if [[ -n $REAL_INTERFACE && $REAL_INTERFACE != wg* ]]; then
- cmd rm -f "/var/run/wireguard/$REAL_INTERFACE.sock"
- else
- cmd ifconfig $REAL_INTERFACE destroy
- fi
- cmd rm -f "/var/run/wireguard/$INTERFACE.name"
+ [[ -n $REAL_INTERFACE ]] && cmd ifconfig $REAL_INTERFACE destroy
}
up_if() {
@@ -438,9 +424,7 @@
}
cmd_down() {
- if ! get_real_interface || [[ " $(wg show interfaces) " != *"
$REAL_INTERFACE "* ]]; then
- die "\`$INTERFACE' is not a WireGuard interface"
- fi
+ get_real_interface || die "\`$INTERFACE' is not a WireGuard interface"
execute_hooks "${PRE_DOWN[@]}"
[[ $SAVE_CONFIG -eq 0 ]] || save_config
del_if
@@ -449,9 +433,7 @@
}
cmd_save() {
- if ! get_real_interface || [[ " $(wg show interfaces) " != *"
$REAL_INTERFACE "* ]]; then
- die "\`$INTERFACE' is not a WireGuard interface"
- fi
+ get_real_interface || die "\`$INTERFACE' is not a WireGuard interface"
save_config
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wireguard-tools-1.0.20200827/src/wincompat/compat.h
new/wireguard-tools-1.0.20210223/src/wincompat/compat.h
--- old/wireguard-tools-1.0.20200827/src/wincompat/compat.h 2020-08-27
10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/wincompat/compat.h 2021-02-23
19:32:18.000000000 +0100
@@ -25,5 +25,3 @@
char *strsep(char **str, const char *sep);
ssize_t getdelim(char **buf, size_t *bufsiz, int delimiter, FILE *fp);
ssize_t getline(char **buf, size_t *bufsiz, FILE *fp);
-int inet_pton(int af, const char *src, void *dst);
-const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/wireguard-tools-1.0.20200827/src/wincompat/libc.c
new/wireguard-tools-1.0.20210223/src/wincompat/libc.c
--- old/wireguard-tools-1.0.20200827/src/wincompat/libc.c 2020-08-27
10:22:09.000000000 +0200
+++ new/wireguard-tools-1.0.20210223/src/wincompat/libc.c 2021-02-23
19:32:18.000000000 +0100
@@ -6,8 +6,6 @@
#include <stdio.h>
#include <stdbool.h>
#include <stdint.h>
-#include <winsock2.h>
-#include <ws2tcpip.h>
#include <windows.h>
char *strsep(char **str, const char *sep)
@@ -69,37 +67,3 @@
{
return getdelim(buf, bufsiz, '\n', fp);
}
-
-int inet_pton(int af, const char *src, void *dst)
-{
- struct sockaddr_storage ss = { 0 };
- int size = sizeof(ss);
- char s[INET6_ADDRSTRLEN + 1];
-
- strncpy(s, src, INET6_ADDRSTRLEN + 1);
- s[INET6_ADDRSTRLEN] = '\0';
-
- if (WSAStringToAddress(s, af, NULL, (struct sockaddr *)&ss, &size))
- return 0;
- if (af == AF_INET)
- *(struct in_addr *)dst = ((struct sockaddr_in *)&ss)->sin_addr;
- else if (af == AF_INET6)
- *(struct in6_addr *)dst = ((struct sockaddr_in6
*)&ss)->sin6_addr;
- else
- return 0;
- return 1;
-}
-
-const char *inet_ntop(int af, const void *src, char *dst, socklen_t size)
-{
- struct sockaddr_storage ss = { .ss_family = af };
- unsigned long s = size;
-
- if (af == AF_INET)
- ((struct sockaddr_in *)&ss)->sin_addr = *(struct in_addr *)src;
- else if (af == AF_INET6)
- ((struct sockaddr_in6 *)&ss)->sin6_addr = *(struct in6_addr
*)src;
- else
- return NULL;
- return WSAAddressToString((struct sockaddr *)&ss, sizeof(ss), NULL,
dst, &s) ? NULL : dst;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wireguard-tools-1.0.20200827/src/wincompat/manifest.xml
new/wireguard-tools-1.0.20210223/src/wincompat/manifest.xml
--- old/wireguard-tools-1.0.20200827/src/wincompat/manifest.xml 1970-01-01
01:00:00.000000000 +0100
+++ new/wireguard-tools-1.0.20210223/src/wincompat/manifest.xml 2021-02-23
19:32:18.000000000 +0100
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="wg"
type="win32" />
+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
+ <application>
+ <!-- Windows 10 -->
+ <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
+ <!-- Windows 8.1 -->
+ <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
+ <!-- Windows 8 -->
+ <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
+ <!-- Windows 7 -->
+ <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
+ </application>
+ </compatibility>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+ <security>
+ <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+ <requestedExecutionLevel level="asInvoker" />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+</assembly>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/wireguard-tools-1.0.20200827/src/wincompat/resources.rc
new/wireguard-tools-1.0.20210223/src/wincompat/resources.rc
--- old/wireguard-tools-1.0.20200827/src/wincompat/resources.rc 1970-01-01
01:00:00.000000000 +0100
+++ new/wireguard-tools-1.0.20210223/src/wincompat/resources.rc 2021-02-23
19:32:18.000000000 +0100
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0
+ *
+ * Copyright (C) 2020 Jason A. Donenfeld. All Rights Reserved.
+ */
+
+#include <windows.h>
+
+#pragma code_page(65001) // UTF-8
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST manifest.xml
+
+#define STRINGIZE(x) #x
+#define EXPAND(x) STRINGIZE(x)
+
+VS_VERSION_INFO VERSIONINFO
+FILEOS VOS_NT_WINDOWS32
+FILETYPE VFT_APP
+FILESUBTYPE VFT2_UNKNOWN
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", "WireGuard LLC"
+ VALUE "FileDescription", "WireGuard wg(8) CLI: Fast, Modern, Secure VPN
Tunnel"
+ VALUE "FileVersion", EXPAND(VERSION_STR)
+ VALUE "InternalName", "wg"
+ VALUE "LegalCopyright", "Copyright ?? 2015-2020 Jason A. Donenfeld
<[email protected]>. All Rights Reserved."
+ VALUE "OriginalFilename", "wg.exe"
+ VALUE "ProductName", "WireGuard"
+ VALUE "ProductVersion", EXPAND(VERSION_STR)
+ VALUE "Comments", "https://www.wireguard.com/"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 0x4b0
+ END
+END