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 @@
 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
-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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

Reply via email to