diff --git a/.cargo/config b/.cargo/config index de148a5..1b903e9 100644 --- a/.cargo/config +++ b/.cargo/config @@ -18,6 +18,16 @@ linker = "arm-linux-gnueabihf-gcc" objcopy = { path = "arm-linux-gnueabihf-objcopy" } strip = { path = "arm-linux-gnueabihf-strip" } +[target.armv5te-unknown-linux-gnueabi] +linker = "arm-linux-gnueabi-gcc" +objcopy = { path = "arm-linux-gnueabi-objcopy" } +strip = { path = "arm-linux-gnueabi-strip" } + +[target.armv5te-unknown-linux-musleabi] +linker = "arm-linux-gnueabi-gcc" +objcopy = { path = "arm-linux-gnueabi-objcopy" } +strip = { path = "arm-linux-gnueabi-strip" } + [target.aarch64-unknown-linux-gnu] linker = "aarch64-linux-gnu-gcc" objcopy = { path = "aarch64-linux-gnu-objcopy" } diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 31018ae..0b2fd30 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -11,8 +11,8 @@ RUN chown vscode: -R /usr/local/rustup /usr/local/cargo USER vscode -RUN rustup default 1.51.0 \ +RUN rustup default 1.57.0 \ && rustup component add clippy rust-src rustfmt -RUN cargo install cargo-outdated cargo-cache \ +RUN cargo install cargo-outdated cargo-cache cargo-criterion \ && cargo cache -a diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index aea8672..2ec4fb2 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -25,7 +25,8 @@ "editorconfig.editorconfig", "swellaby.vscode-rust-test-adapter", "matklad.rust-analyzer", - "asciidoctor.asciidoctor-vscode" + "asciidoctor.asciidoctor-vscode", + "ms-vscode.test-adapter-converter" ], // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], diff --git a/.github/actions/build-deb/Dockerfile b/.github/actions/build-deb/Dockerfile index c2e0889..88e6289 100644 --- a/.github/actions/build-deb/Dockerfile +++ b/.github/actions/build-deb/Dockerfile @@ -6,8 +6,10 @@ RUN apt-get update \ curl \ gcc-aarch64-linux-gnu \ gcc-arm-linux-gnueabihf \ + gcc-arm-linux-gnueabi \ libc6-dev-arm64-cross \ libc6-dev-armhf-cross \ + libc6-dev-armel-cross \ libc6-dev-i386 \ gcc-5-multilib \ asciidoctor \ diff --git a/.github/actions/build-deb/entrypoint.sh b/.github/actions/build-deb/entrypoint.sh index 166a9c1..4edab0c 100755 --- a/.github/actions/build-deb/entrypoint.sh +++ b/.github/actions/build-deb/entrypoint.sh @@ -13,6 +13,7 @@ curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain ${TOOLCHAIN} source $HOME/.cargo/env rustup target add i686-unknown-linux-gnu +rustup target add armv5te-unknown-linux-gnueabi rustup target add armv7-unknown-linux-gnueabihf rustup target add aarch64-unknown-linux-gnu @@ -32,4 +33,5 @@ cp target/debian/vpncloud_${DEB_VERSION}_amd64.deb dist/vpncloud_${DEB_VERSION}_ build_deb i386 i686-unknown-linux-gnu build_deb armhf armv7-unknown-linux-gnueabihf +build_deb armel armv5te-unknown-linux-gnueabi build_deb arm64 aarch64-unknown-linux-gnu \ No newline at end of file diff --git a/.github/actions/build-static/Dockerfile b/.github/actions/build-static/Dockerfile index ed488af..2705814 100644 --- a/.github/actions/build-static/Dockerfile +++ b/.github/actions/build-static/Dockerfile @@ -6,8 +6,10 @@ RUN apt-get update \ curl \ gcc-aarch64-linux-gnu \ gcc-arm-linux-gnueabihf \ + gcc-arm-linux-gnueabi \ libc6-dev-arm64-cross \ libc6-dev-armhf-cross \ + libc6-dev-armel-cross \ libc6-dev-i386 \ gcc-5-multilib \ asciidoctor \ diff --git a/.github/actions/build-static/entrypoint.sh b/.github/actions/build-static/entrypoint.sh index 4bc0ac3..deea9ab 100755 --- a/.github/actions/build-static/entrypoint.sh +++ b/.github/actions/build-static/entrypoint.sh @@ -17,6 +17,7 @@ source $HOME/.cargo/env rustup target add x86_64-unknown-linux-musl rustup target add i686-unknown-linux-musl +rustup target add armv5te-unknown-linux-musleabi rustup target add armv7-unknown-linux-musleabihf rustup target add aarch64-unknown-linux-musl @@ -34,4 +35,5 @@ build_static() { build_static amd64 x86_64-unknown-linux-musl #build_static i386 i686-unknown-linux-musl build_static armhf armv7-unknown-linux-musleabihf +build_static armel armv5te-unknown-linux-musleabi build_static arm64 aarch64-unknown-linux-musl \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index d2548e3..ae8de9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,12 @@ This project follows [semantic versioning](http://semver.org). ### UNRELEASED +- [added] Added build for armv5te (thanks to xek) - [added] Option to specify advertised addresses - [added] Peers now learn their own address from peers +- [changed] Changed Rust version to 1.57.0 +- [changed] Updated dependencies +- [fixed] Fixed problem with IPv4 addresses in listen option ### v2.2.0 (2021-04-06) diff --git a/Cargo.lock b/Cargo.lock index 94a98eb..11a6d4a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,10 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "ansi_term" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" dependencies = [ "winapi", ] @@ -46,9 +48,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bitflags" -version = "1.2.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "block-buffer" @@ -67,9 +69,9 @@ checksum = "5988cb1d626264ac94100be357308f29ff7cbdd3b36bda27f450a4ee3f713426" [[package]] name = "bstr" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" dependencies = [ "lazy_static", "memchr", @@ -79,9 +81,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.6.1" +version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" +checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" [[package]] name = "byteorder" @@ -91,24 +93,24 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" [[package]] name = "cast" -version = "0.2.4" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f566d1fbeb40ec78c78344e9983f46ff9eb4e944fa930ed01b7d72b72a37c11" +checksum = "4c24dab4283a142afa2fdca129b80ad2c6284e073930f964c3a1293c225ee39a" dependencies = [ "rustc_version", ] [[package]] name = "cc" -version = "1.0.67" +version = "1.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" +checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" [[package]] name = "cfg-if" @@ -136,9 +138,9 @@ dependencies = [ [[package]] name = "clap" -version = "2.33.3" +version = "2.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", @@ -151,13 +153,13 @@ dependencies = [ [[package]] name = "console" -version = "0.14.1" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45" +checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" dependencies = [ "encode_unicode", - "lazy_static", "libc", + "once_cell", "regex", "terminal_size", "unicode-width", @@ -165,23 +167,26 @@ dependencies = [ ] [[package]] -name = "cpuid-bool" -version = "0.1.2" +name = "cpufeatures" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" +checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +dependencies = [ + "libc", +] [[package]] name = "criterion" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab327ed7354547cc2ef43cbe20ef68b988e70b4b593cbd66a2a61733123a3d23" +checksum = "1604dafd25fba2fe2d5895a9da139f8dc9b319a5fe5354ca137cbbce4e178d10" dependencies = [ "atty", "cast", "clap", "criterion-plot", "csv", - "itertools 0.10.0", + "itertools", "lazy_static", "num-traits", "oorandom", @@ -198,12 +203,12 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d" +checksum = "d00996de9f2f7559f7f4dc286073197f83e92256a59ed395f9aac01fe717da57" dependencies = [ "cast", - "itertools 0.9.0", + "itertools", ] [[package]] @@ -218,9 +223,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", @@ -229,9 +234,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" +checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ "cfg-if 1.0.0", "crossbeam-utils", @@ -242,11 +247,10 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "autocfg", "cfg-if 1.0.0", "lazy_static", ] @@ -259,7 +263,7 @@ checksum = "22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1" dependencies = [ "bstr", "csv-core", - "itoa", + "itoa 0.4.8", "ryu", "serde", ] @@ -285,9 +289,9 @@ dependencies = [ [[package]] name = "dialoguer" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9dd058f8b65922819fabb4a41e7d1964e56344042c26efbccd465202c23fa0c" +checksum = "61579ada4ec0c6031cfac3f86fdba0d195a7ebeb5e36693bd53cb5999a25beeb" dependencies = [ "console", "lazy_static", @@ -304,12 +308,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "dtoa" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" - [[package]] name = "either" version = "1.6.1" @@ -350,9 +348,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ "cfg-if 1.0.0", "libc", @@ -361,44 +359,50 @@ dependencies = [ [[package]] name = "half" -version = "1.7.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" [[package]] name = "heck" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" dependencies = [ "unicode-segmentation", ] [[package]] name = "hermit-abi" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" dependencies = [ "libc", ] [[package]] name = "http" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11" +checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" dependencies = [ "bytes", "fnv", - "itoa", + "itoa 0.4.8", ] [[package]] name = "httparse" -version = "1.3.6" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc35c995b9d93ec174cf9a27d425c7892722101e14993cd227fdb51d70cf9589" +checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" [[package]] name = "iai" @@ -408,9 +412,9 @@ checksum = "71a816c97c42258aa5834d07590b718b4c9a598944cd39a52dc25b351185d678" [[package]] name = "idna" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" dependencies = [ "matches", "unicode-bidi", @@ -431,12 +435,13 @@ dependencies = [ ] [[package]] -name = "input_buffer" -version = "0.4.0" +name = "indexmap" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ - "bytes", + "autocfg", + "hashbrown", ] [[package]] @@ -450,33 +455,30 @@ dependencies = [ [[package]] name = "itertools" -version = "0.9.0" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" dependencies = [ "either", ] [[package]] name = "itoa" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" [[package]] name = "js-sys" -version = "0.3.50" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" dependencies = [ "wasm-bindgen", ] @@ -489,9 +491,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.94" +version = "0.2.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" +checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125" [[package]] name = "linked-hash-map" @@ -501,9 +503,9 @@ checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" [[package]] name = "lock_api" -version = "0.4.2" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" +checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" dependencies = [ "scopeguard", ] @@ -519,21 +521,21 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] name = "memchr" -version = "2.3.4" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" [[package]] name = "memoffset" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ "autocfg", ] @@ -553,14 +555,15 @@ dependencies = [ [[package]] name = "nix" -version = "0.19.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ccba0cfe4fdf15982d1674c69b1fd80bad427d293849982668dfe454bd61f2" +checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" dependencies = [ "bitflags", "cc", "cfg-if 1.0.0", "libc", + "memoffset", ] [[package]] @@ -594,9 +597,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.7.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" +checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" [[package]] name = "oorandom" @@ -612,9 +615,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "parking_lot" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", @@ -623,9 +626,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ "cfg-if 1.0.0", "instant", @@ -643,9 +646,9 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "plotters" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ca0ae5f169d0917a7c7f5a9c1a3d3d9598f18f529dd2b8373ed988efea307a" +checksum = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a" dependencies = [ "num-traits", "plotters-backend", @@ -656,33 +659,33 @@ dependencies = [ [[package]] name = "plotters-backend" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07fffcddc1cb3a1de753caa4e4df03b79922ba43cf882acc1bdd7e8df9f4590" +checksum = "d88417318da0eaf0fdcdb51a0ee6c3bed624333bff8f946733049380be67ac1c" [[package]] name = "plotters-svg" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b38a02e23bd9604b842a812063aec4ef702b57989c37b655254bb61c471ad211" +checksum = "521fa9638fa597e1dc53e9412a4f9cefb01187ee1f7413076f9e6749e2885ba9" dependencies = [ "plotters-backend", ] [[package]] name = "ppv-lite86" -version = "0.2.10" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" +checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" [[package]] name = "privdrop" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebd4c2739642e70439d1c0d9545beec45c1e54128739b3cda29bf2c366028c87" +checksum = "4c02cf257b10e4b807bccadb19630d5dea7e0369c3c5e84673ee8e58dc8da6a5" dependencies = [ "libc", - "nix 0.19.1", + "nix 0.23.1", ] [[package]] @@ -711,27 +714,27 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.26" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" +checksum = "2f84e92c0f7c9d58328b85a78557813e4bd845130db68d7184635344399423b1" dependencies = [ "unicode-xid", ] [[package]] name = "quote" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" dependencies = [ "proc-macro2", ] [[package]] name = "rand" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" dependencies = [ "libc", "rand_chacha", @@ -741,9 +744,9 @@ dependencies = [ [[package]] name = "rand_chacha" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", @@ -751,27 +754,27 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ "getrandom", ] [[package]] name = "rand_hc" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" dependencies = [ "rand_core", ] [[package]] name = "rayon" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg", "crossbeam-deque", @@ -781,9 +784,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -794,36 +797,33 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.5" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" dependencies = [ "bitflags", ] [[package]] name = "regex" -version = "1.4.5" +version = "1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" dependencies = [ "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4" -dependencies = [ - "byteorder", -] +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" [[package]] name = "regex-syntax" -version = "0.6.23" +version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" [[package]] name = "remove_dir_all" @@ -851,18 +851,18 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.2.3" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ "semver", ] [[package]] name = "ryu" -version = "1.0.5" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" [[package]] name = "same-file" @@ -881,33 +881,24 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "semver" -version = "0.9.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" [[package]] name = "serde" -version = "1.0.125" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" +checksum = "8b9875c23cf305cd1fd7eb77234cbb705f21ea6a72c637a5c6db5fe4b8e7f008" dependencies = [ "serde_derive", ] [[package]] name = "serde_cbor" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622" +checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" dependencies = [ "half", "serde", @@ -915,9 +906,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.125" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" +checksum = "ecc0db5cb2556c0e558887d9bbdcf6ac4471e83ff66cf696e5419024d1606276" dependencies = [ "proc-macro2", "quote", @@ -926,36 +917,36 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.64" +version = "1.0.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" +checksum = "bcbd0344bc6533bc7ec56df11d42fb70f1b912351c0825ccb7211b59d8af7cf5" dependencies = [ - "itoa", + "itoa 1.0.1", "ryu", "serde", ] [[package]] name = "serde_yaml" -version = "0.8.17" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15654ed4ab61726bf918a39cb8d98a2e2995b002387807fa6ba58fdf7f59bb23" +checksum = "a4a521f2940385c165a24ee286aa8599633d162077a54bdcae2a6fd5a7bfa7a0" dependencies = [ - "dtoa", - "linked-hash-map", + "indexmap", + "ryu", "serde", "yaml-rust", ] [[package]] name = "sha-1" -version = "0.9.4" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfebf75d25bd900fd1e7d11501efab59bc846dbc76196839663e6637bba9f25f" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer", "cfg-if 1.0.0", - "cpuid-bool", + "cpufeatures", "digest", "opaque-debug", ] @@ -972,9 +963,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" +checksum = "1ecab6c735a6bb4139c0caafd0cc3635748bbb3acf4550e8138122099251f309" [[package]] name = "spin" @@ -990,9 +981,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" -version = "0.3.21" +version = "0.3.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277acd7ee46e63e5168a80734c9f6ee81b1367a7d8772a2d765df2a3705d28c" +checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c" dependencies = [ "clap", "lazy_static", @@ -1001,9 +992,9 @@ dependencies = [ [[package]] name = "structopt-derive" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba9cdfda491b814720b6b06e0cac513d922fc407582032e8706e9f137976f90" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" dependencies = [ "heck", "proc-macro-error", @@ -1014,9 +1005,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.69" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fe99c6bd8b1cc636890bcc071842de909d902c81ac7dab53ba33c421ab8ffb" +checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" dependencies = [ "proc-macro2", "quote", @@ -1039,9 +1030,9 @@ dependencies = [ [[package]] name = "terminal_size" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ca8ced750734db02076f44132d802af0b33b09942331f4459dde8636fd2406" +checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" dependencies = [ "libc", "winapi", @@ -1058,18 +1049,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" dependencies = [ "proc-macro2", "quote", @@ -1097,9 +1088,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.2.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" +checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" dependencies = [ "tinyvec_macros", ] @@ -1112,16 +1103,15 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tungstenite" -version = "0.13.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe8dada8c1a3aeca77d6b51a4f1314e0f4b8e438b7b1b71e3ddaca8080e4093" +checksum = "6ad3713a14ae247f22a728a0456a545df14acf3867f905adff84be99e23b3ad1" dependencies = [ "base64", "byteorder", "bytes", "http", "httparse", - "input_buffer", "log", "rand", "sha-1", @@ -1132,45 +1122,42 @@ dependencies = [ [[package]] name = "typenum" -version = "1.13.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" +checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" [[package]] name = "unicode-bidi" -version = "0.3.5" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" -dependencies = [ - "matches", -] +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" [[package]] name = "unicode-normalization" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" [[package]] name = "unicode-width" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" [[package]] name = "unicode-xid" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "untrusted" @@ -1192,9 +1179,9 @@ dependencies = [ [[package]] name = "utf-8" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" [[package]] name = "vec_map" @@ -1264,9 +1251,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.73" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -1274,9 +1261,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.73" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" dependencies = [ "bumpalo", "lazy_static", @@ -1289,9 +1276,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.73" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1299,9 +1286,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.73" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" dependencies = [ "proc-macro2", "quote", @@ -1312,15 +1299,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.73" +version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" [[package]] name = "web-sys" -version = "0.3.50" +version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be" +checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb" dependencies = [ "js-sys", "wasm-bindgen", @@ -1365,15 +1352,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "xml-rs" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" +checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" [[package]] name = "xmltree" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d046fd42d4137234742eae0d05b4fb6fbdda9aed7c78e523ae890fd87c7e11dd" +checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb" dependencies = [ "xml-rs", ] @@ -1389,6 +1376,6 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.2.0" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a974bcdd357f0dca4d41677db03436324d45a4c9ed2d0b873a5a360ce41c36" +checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" diff --git a/Cargo.toml b/Cargo.toml index 58ebbb5..d823914 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ readme = "README.md" edition = "2018" [package.metadata] -toolchain = "1.51.0" +toolchain = "1.57.0" upx_version = "3.96" [dependencies] @@ -30,10 +30,10 @@ ring = "0.16" privdrop = "0.5" byteorder = "1.4" thiserror = "1.0" -parking_lot = "*" -smallvec = "1.6" -dialoguer = { version = "0.8", optional = true } -tungstenite = { version = "0.13", optional = true, default-features = false } +parking_lot = "^0.11.2" +smallvec = "1.7" +dialoguer = { version = "0.9", optional = true } +tungstenite = { version = "0.16", optional = true, default-features = false } url = { version = "2.2", optional = true } igd = { version = "0.12", optional = true } timeout_io = "0.6" diff --git a/benches/criterion.rs b/benches/criterion.rs index 8c929bb..be484eb 100644 --- a/benches/criterion.rs +++ b/benches/criterion.rs @@ -3,8 +3,6 @@ extern crate serde; #[macro_use] extern crate log; -#[macro_use] -extern crate tokio; use criterion::{criterion_group, criterion_main, Criterion, Throughput}; diff --git a/benches/valgrind.rs b/benches/valgrind.rs index c5c81e3..b38f3cf 100644 --- a/benches/valgrind.rs +++ b/benches/valgrind.rs @@ -3,8 +3,6 @@ extern crate serde; #[macro_use] extern crate log; -#[macro_use] -extern crate tokio; use iai::{black_box, main}; diff --git a/builder/Dockerfile-deb b/builder/Dockerfile-deb index ec52ecc..303a1fe 100644 --- a/builder/Dockerfile-deb +++ b/builder/Dockerfile-deb @@ -9,8 +9,10 @@ RUN apt-get update \ curl \ gcc-aarch64-linux-gnu \ gcc-arm-linux-gnueabihf \ + gcc-arm-linux-gnueabi \ libc6-dev-arm64-cross \ libc6-dev-armhf-cross \ + libc6-dev-armel-cross \ libc6-dev-i386 \ gcc-5-multilib \ asciidoctor \ @@ -22,6 +24,7 @@ ENV RUSTUP_HOME=/opt/rust/rustup \ RUN curl https://sh.rustup.rs -sSf | env CARGO_HOME=/opt/rust/cargo sh -s -- -y --default-toolchain ${TOOLCHAIN} --profile minimal --no-modify-path RUN env CARGO_HOME=/opt/rust/cargo rustup target add i686-unknown-linux-gnu \ + && env CARGO_HOME=/opt/rust/cargo rustup target add armv5te-unknown-linux-gnueabi \ && env CARGO_HOME=/opt/rust/cargo rustup target add armv7-unknown-linux-gnueabihf \ && env CARGO_HOME=/opt/rust/cargo rustup target add aarch64-unknown-linux-gnu diff --git a/builder/Dockerfile-musl b/builder/Dockerfile-musl index 4c1a769..925b049 100644 --- a/builder/Dockerfile-musl +++ b/builder/Dockerfile-musl @@ -9,8 +9,10 @@ RUN apt-get update \ curl \ gcc-aarch64-linux-gnu \ gcc-arm-linux-gnueabihf \ + gcc-arm-linux-gnueabi \ libc6-dev-arm64-cross \ libc6-dev-armhf-cross \ + libc6-dev-armel-cross \ libc6-dev-i386 \ gcc-5-multilib \ asciidoctor \ @@ -24,6 +26,7 @@ RUN curl https://sh.rustup.rs -sSf | env CARGO_HOME=/opt/rust/cargo sh -s -- -y RUN env CARGO_HOME=/opt/rust/cargo rustup target add x86_64-unknown-linux-musl \ && env CARGO_HOME=/opt/rust/cargo rustup target add i686-unknown-linux-musl \ + && env CARGO_HOME=/opt/rust/cargo rustup target add armv5te-unknown-linux-musleabi \ && env CARGO_HOME=/opt/rust/cargo rustup target add armv7-unknown-linux-musleabihf \ && env CARGO_HOME=/opt/rust/cargo rustup target add aarch64-unknown-linux-musl diff --git a/builder/build.sh b/builder/build.sh index a8515be..4e2bc8d 100755 --- a/builder/build.sh +++ b/builder/build.sh @@ -53,6 +53,7 @@ build_deb() { build_deb i386 i686-unknown-linux-gnu build_deb armhf armv7-unknown-linux-gnueabihf +build_deb armel armv5te-unknown-linux-gnueabi build_deb arm64 aarch64-unknown-linux-gnu @@ -69,6 +70,7 @@ build_static() { build_static amd64 x86_64-unknown-linux-musl #build_static i386 i686-unknown-linux-musl +build_static armel armv5te-unknown-linux-musleabi build_static armhf armv7-unknown-linux-musleabihf build_static arm64 aarch64-unknown-linux-musl diff --git a/src/config.rs b/src/config.rs index 6252e79..d2f82e7 100644 --- a/src/config.rs +++ b/src/config.rs @@ -387,7 +387,7 @@ impl Config { if let Some(ref s) = self.hook { script = Some(s); } - if let Some(ref s) = self.hooks.get(event) { + if let Some(s) = self.hooks.get(event) { script = Some(s); } if script.is_none() { diff --git a/src/crypto/common.rs b/src/crypto/common.rs index a964670..bf7e147 100644 --- a/src/crypto/common.rs +++ b/src/crypto/common.rs @@ -247,7 +247,7 @@ impl PeerCrypto { match self { PeerCrypto::Encrypted { trusted_keys, last_init_message, .. } | PeerCrypto::Unencrypted { trusted_keys, last_init_message, .. } => { - let (msg, _) = InitMsg::read_from(buffer.buffer(), &trusted_keys)?; + let (msg, _) = InitMsg::read_from(buffer.buffer(), trusted_keys)?; buffer.clear(); if msg.stage() == STAGE_PONG { buffer.set_length(last_init_message.len()); diff --git a/src/crypto/core.rs b/src/crypto/core.rs index 2a52784..cf6eb51 100644 --- a/src/crypto/core.rs +++ b/src/crypto/core.rs @@ -112,7 +112,7 @@ struct CryptoKey { impl CryptoKey { fn new(rand: &SystemRandom, key: LessSafeKey, nonce_half: bool) -> Self { - let mut send_nonce = Nonce::random(&rand); + let mut send_nonce = Nonce::random(rand); send_nonce.set_msb(if nonce_half { 0x80 } else { 0x00 }); CryptoKey { key, diff --git a/src/crypto/init.rs b/src/crypto/init.rs index dd99a1a..3a1c23a 100644 --- a/src/crypto/init.rs +++ b/src/crypto/init.rs @@ -246,7 +246,7 @@ impl InitMsg { let signed_data = &r.into_inner()[1..pos]; let public_key = signature::UnparsedPublicKey::new(&ED25519, &public_key_data); - if public_key.verify(&signed_data, &signature).is_err() { + if public_key.verify(signed_data, &signature).is_err() { return Err(Error::Crypto("invalid signature")); } @@ -331,7 +331,7 @@ impl InitMsg { w.write_u8(Self::PART_ECDH_PUBLIC_KEY)?; let key_bytes = ecdh_public_key.bytes(); w.write_u16::(key_bytes.len() as u16)?; - w.write_all(&key_bytes)?; + w.write_all(key_bytes)?; } _ => (), } @@ -536,8 +536,8 @@ impl InitState

{ }, _ => unreachable!(), }; - let mut bytes = out.buffer(); - let len = msg.write_to(&mut bytes, &self.key_pair).expect("Buffer too small"); + let bytes = out.buffer(); + let len = msg.write_to(bytes, &self.key_pair).expect("Buffer too small"); self.last_message = Some(bytes[0..len].to_vec()); out.set_length(len); } @@ -699,7 +699,7 @@ mod tests { impl Payload for Vec { fn write_to(&self, buffer: &mut MsgBuffer) { - buffer.buffer().write_all(&self).expect("Buffer too small"); + buffer.buffer().write_all(self).expect("Buffer too small"); buffer.set_length(self.len()) } diff --git a/src/crypto/rotate.rs b/src/crypto/rotate.rs index 4deec81..74277d1 100644 --- a/src/crypto/rotate.rs +++ b/src/crypto/rotate.rs @@ -176,7 +176,7 @@ impl RotationState { if let Some(ref private_key) = self.proposed { // Still a proposed key that has not been confirmed, proposal must have been lost if self.timeout { - let proposed_key = Self::compute_public_key(&private_key); + let proposed_key = Self::compute_public_key(private_key); if let Some((ref confirmed_key, message_id)) = self.confirmed { // Reconfirm last confirmed key Self::send( @@ -271,7 +271,7 @@ mod tests { assert!(key2.is_some()); let key2 = key2.unwrap(); assert_eq!(key2.id, 2); - assert_eq!(key2.use_for_sending, false); + assert!(!key2.use_for_sending); assert!(!out2.is_empty()); let msg2 = out2.msg().unwrap(); assert_eq!(msg2.message_id, 2); @@ -281,14 +281,14 @@ mod tests { assert!(key.is_some()); let key = key.unwrap(); assert_eq!(key.id, 2); - assert_eq!(key.use_for_sending, true); + assert!(key.use_for_sending); // Cycle 2 let key1 = node1.cycle(&mut out1); let key2 = node2.cycle(&mut out2); assert!(key1.is_some()); let key1 = key1.unwrap(); assert_eq!(key1.id, 3); - assert_eq!(key1.use_for_sending, false); + assert!(!key1.use_for_sending); assert!(!out1.is_empty()); let msg1 = out1.msg().unwrap(); assert_eq!(msg1.message_id, 3); @@ -300,7 +300,7 @@ mod tests { assert!(key.is_some()); let key = key.unwrap(); assert_eq!(key.id, 3); - assert_eq!(key.use_for_sending, true); + assert!(key.use_for_sending); // Cycle 3 let key1 = node1.cycle(&mut out1); let key2 = node2.cycle(&mut out2); @@ -309,7 +309,7 @@ mod tests { assert!(key2.is_some()); let key2 = key2.unwrap(); assert_eq!(key2.id, 4); - assert_eq!(key2.use_for_sending, false); + assert!(!key2.use_for_sending); assert!(!out2.is_empty()); let msg2 = out2.msg().unwrap(); assert_eq!(msg2.message_id, 4); @@ -319,7 +319,7 @@ mod tests { assert!(key.is_some()); let key = key.unwrap(); assert_eq!(key.id, 4); - assert_eq!(key.use_for_sending, true); + assert!(key.use_for_sending); } #[test] diff --git a/src/device.rs b/src/device.rs index f40bedf..6e2aea8 100644 --- a/src/device.rs +++ b/src/device.rs @@ -270,7 +270,7 @@ impl Device for TunTapDevice { fn read(&mut self, buffer: &mut MsgBuffer) -> Result<(), Error> { buffer.clear(); let mut read = 0; - self.fd.try_read(buffer.buffer(), &mut read, Duration::from_secs(1)).map_err(|e| Error::DeviceRead(e))?; + self.fd.try_read(buffer.buffer(), &mut read, Duration::from_secs(1)).map_err(Error::DeviceRead)?; buffer.set_length(read); self.correct_data_after_read(buffer); Ok(()) diff --git a/src/engine/common.rs b/src/engine/common.rs index bf691fd..0c549ad 100644 --- a/src/engine/common.rs +++ b/src/engine/common.rs @@ -50,7 +50,7 @@ impl GenericCloud, stats_file: Option, ) -> Result { - let table = SharedTable::::new(&config); + let table = SharedTable::::new(config); let traffic = SharedTraffic::new(); let peer_crypto = SharedPeerCrypto::new(); let running = Arc::new(AtomicBool::new(true)); diff --git a/src/engine/socket_thread.rs b/src/engine/socket_thread.rs index 7ae2835..e2dd79e 100644 --- a/src/engine/socket_thread.rs +++ b/src/engine/socket_thread.rs @@ -430,7 +430,7 @@ impl SocketThread Result<(), Error> { let now = TS::now(); let mut del: SmallVec<[SocketAddr; 3]> = SmallVec::new(); - for (&addr, ref data) in &self.peers { + for (&addr, data) in &self.peers { if data.timeout < now { del.push(addr); } @@ -675,7 +675,7 @@ impl SocketThread)>>>; + #[derive(Clone)] pub struct MockSocket { nat: bool, nat_peers: Arc>>, address: SocketAddr, - outbound: Arc)>>>, - inbound: Arc)>>>, + outbound: MsgQueue, + inbound: MsgQueue, } impl MockSocket { diff --git a/src/wizard.rs b/src/wizard.rs index 75e7d95..e34131d 100644 --- a/src/wizard.rs +++ b/src/wizard.rs @@ -501,8 +501,8 @@ pub fn configure(name: Option) -> Result<(), io::Error> { println!(" start the VPN: sudo service vpncloud@{0} start", name); println!(" stop the VPN: sudo service vpncloud@{0} stop", name); println!(" get the status: sudo service vpncloud@{0} status", name); - println!(" add VPN to autostart: sudo sysctl enable vpncloud@{0}", name); - println!(" remove VPN from autostart: sudo sysctl disable vpncloud@{0}", name); + println!(" add VPN to autostart: sudo systemctl enable vpncloud@{0}", name); + println!(" remove VPN from autostart: sudo systemctl disable vpncloud@{0}", name); } Ok(()) diff --git a/src/wsproxy.rs b/src/wsproxy.rs index 0f6eba1..1c55fda 100644 --- a/src/wsproxy.rs +++ b/src/wsproxy.rs @@ -9,8 +9,13 @@ use super::{ util::MsgBuffer, }; use byteorder::{NetworkEndian, ReadBytesExt, WriteBytesExt}; -use std::{io::{self, Cursor, Read, Write}, net::{Ipv6Addr, SocketAddr, SocketAddrV6, TcpListener, TcpStream, UdpSocket}, os::unix::io::AsRawFd, sync::Arc, thread}; -use tungstenite::{client::AutoStream, connect, protocol::WebSocket, server::accept, Message}; +use std::{ + io::{self, Cursor, Read, Write}, + net::{Ipv6Addr, SocketAddr, SocketAddrV6, TcpListener, TcpStream, UdpSocket}, + os::unix::io::{AsRawFd, RawFd}, + thread, sync::Arc, +}; +use tungstenite::{connect, protocol::WebSocket, Message, accept, stream::{MaybeTlsStream, NoDelay}}; use url::Url; macro_rules! io_error { @@ -105,7 +110,7 @@ pub fn run_proxy(listen: &str) -> Result<(), io::Error> { #[derive(Clone)] pub struct ProxyConnection { addr: SocketAddr, - socket: Arc>, + socket: Arc>>, } impl ProxyConnection { @@ -132,6 +137,15 @@ impl ProxyConnection { } } +impl AsRawFd for ProxyConnection { + fn as_raw_fd(&self) -> RawFd { + match self.socket.get_ref() { + MaybeTlsStream::Plain(stream) => stream.as_raw_fd(), + _ => unimplemented!() + } + } +} + impl Socket for ProxyConnection { fn create_port_forwarding(&self) -> Option { None