diff --git a/CHANGELOG.md b/CHANGELOG.md index b981a31..8ac4464 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2022-06-26 unftp v0.13.2 + +- Added support for [tokio-console])(https://github.com/tokio-rs/console), the debugger for async Rust. Enable through + the `tokio_console` compile time feature. +- [#414](https://github.com/bolcom/libunftp/pull/414) via libunftp: Fixed path display issues for Windows clients. +- [#413](https://github.com/bolcom/libunftp/pull/413) via libunftp: Fixed issue where the `OPTS UTF8` command was not handled correctly as seen with the FTP client included in Windows Explorer. +- Upgraded dependencies + ## 2022-04-15 unftp v0.13.1 - [#343](https://github.com/bolcom/libunftp/pull/343), Added anti - brute force password guessing feature. Choose from diff --git a/Cargo.lock b/Cargo.lock index 9ec0947..cec5d28 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -475,15 +475,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "ct-logs" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" -dependencies = [ - "sct 0.6.1", -] - [[package]] name = "ctor" version = "0.1.22" @@ -575,6 +566,12 @@ dependencies = [ "syn", ] +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + [[package]] name = "dtoa" version = "0.4.8" @@ -734,13 +731,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if 1.0.0", "libc", - "wasi 0.10.0+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", ] [[package]] @@ -891,23 +888,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" -dependencies = [ - "ct-logs", - "futures-util", - "hyper", - "log", - "rustls 0.19.1", - "rustls-native-certs 0.5.0", - "tokio", - "tokio-rustls 0.22.0", - "webpki 0.21.4", -] - [[package]] name = "hyper-rustls" version = "0.23.0" @@ -917,10 +897,10 @@ dependencies = [ "http", "hyper", "log", - "rustls 0.20.4", - "rustls-native-certs 0.6.1", + "rustls", + "rustls-native-certs", "tokio", - "tokio-rustls 0.23.3", + "tokio-rustls", ] [[package]] @@ -967,9 +947,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c" +checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" [[package]] name = "iprange" @@ -1045,9 +1025,9 @@ dependencies = [ [[package]] name = "libunftp" -version = "0.18.4" +version = "0.18.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55fe7485a7da2a339aa0680f2b149a64e9361b7e7827230b326d618b0c08368b" +checksum = "c34cc330f3b1f7ff7764f21c0bb26bc48fa30a5590bab8c13c4cd4504457bd06" dependencies = [ "async-trait", "bitflags", @@ -1061,17 +1041,17 @@ dependencies = [ "moka", "prometheus", "proxy-protocol", - "rustls 0.20.4", + "rustls", "rustls-pemfile 1.0.0", "slog", "slog-stdlog", "thiserror", "tokio", - "tokio-rustls 0.23.3", - "tokio-util 0.7.1", + "tokio-rustls", + "tokio-util 0.7.3", "tracing", "tracing-attributes", - "uuid 1.0.0-alpha.1", + "uuid 1.1.2", "x509-parser", ] @@ -1221,9 +1201,9 @@ dependencies = [ [[package]] name = "moka" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef9d038ced38770a867f2300ef21e1193b5e26d8e8e060fa5c034d1dddc57452" +checksum = "df72b50274c0988d9f4a6e808e06d9d926f265db6f8bbda1576bcaa658e72763" dependencies = [ "crossbeam-channel", "crossbeam-epoch", @@ -1591,12 +1571,12 @@ checksum = "cf7e6d18738ecd0902d30d1ad232c9125985a3422929b16c65517b38adc14f96" [[package]] name = "proxy-protocol" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5b06e3438447e2b41b510996e0807ef6d776253b3c6c68b1f057652575e01" +checksum = "0e50c72c21c738f5c5f350cc33640aee30bf7cd20f9d9da20ed41bce2671d532" dependencies = [ "bytes", - "thiserror", + "snafu", ] [[package]] @@ -1612,9 +1592,9 @@ dependencies = [ [[package]] name = "quanta" -version = "0.9.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" +checksum = "bafd74c340a0a7e79415981ede3460df16b530fd071541901a57416eea950b17" dependencies = [ "crossbeam-utils 0.8.8", "libc", @@ -1732,9 +1712,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.5" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" dependencies = [ "aho-corasick", "memchr", @@ -1752,9 +1732,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" [[package]] name = "remove_dir_all" @@ -1800,39 +1780,14 @@ dependencies = [ [[package]] name = "rustls" -version = "0.19.1" +version = "0.20.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ - "base64", "log", "ring", - "sct 0.6.1", - "webpki 0.21.4", -] - -[[package]] -name = "rustls" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" -dependencies = [ - "log", - "ring", - "sct 0.7.0", - "webpki 0.22.0", -] - -[[package]] -name = "rustls-native-certs" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" -dependencies = [ - "openssl-probe", - "rustls 0.19.1", - "schannel", - "security-framework", + "sct", + "webpki", ] [[package]] @@ -1856,6 +1811,15 @@ dependencies = [ "base64", ] +[[package]] +name = "rustls-pemfile" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" +dependencies = [ + "base64", +] + [[package]] name = "rustls-pemfile" version = "1.0.0" @@ -1911,16 +1875,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "sct" version = "0.7.0" @@ -2126,6 +2080,27 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +[[package]] +name = "snafu" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab12d3c261b2308b0d80c26fffb58d17eba81a4be97890101f416b478c79ca7" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "socket2" version = "0.4.4" @@ -2294,6 +2269,7 @@ dependencies = [ "itoa 1.0.1", "libc", "num_threads", + "serde", "time-macros", ] @@ -2362,31 +2338,20 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" -dependencies = [ - "rustls 0.19.1", - "tokio", - "webpki 0.21.4", -] - -[[package]] -name = "tokio-rustls" -version = "0.23.3" +version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls 0.20.4", + "rustls", "tokio", - "webpki 0.22.0", + "webpki", ] [[package]] name = "tokio-stream" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" dependencies = [ "futures-core", "pin-project-lite", @@ -2401,7 +2366,6 @@ checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" dependencies = [ "bytes", "futures-core", - "futures-io", "futures-sink", "log", "pin-project-lite", @@ -2410,12 +2374,13 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" dependencies = [ "bytes", "futures-core", + "futures-io", "futures-sink", "pin-project-lite", "tokio", @@ -2455,7 +2420,7 @@ dependencies = [ "prost-derive", "tokio", "tokio-stream", - "tokio-util 0.7.1", + "tokio-util 0.7.3", "tower", "tower-layer", "tower-service", @@ -2477,7 +2442,7 @@ dependencies = [ "rand", "slab", "tokio", - "tokio-util 0.7.1", + "tokio-util 0.7.3", "tower-layer", "tower-service", "tracing", @@ -2529,9 +2494,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" +checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" dependencies = [ "proc-macro2", "quote", @@ -2596,7 +2561,7 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" [[package]] name = "unftp" -version = "0.13.1" +version = "0.13.2" dependencies = [ "async-trait", "base64", @@ -2607,7 +2572,7 @@ dependencies = [ "futures", "http", "hyper", - "hyper-rustls 0.23.0", + "hyper-rustls", "lazy_static", "libunftp", "pretty_assertions", @@ -2630,9 +2595,9 @@ dependencies = [ [[package]] name = "unftp-auth-jsonfile" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aff608fdfbb7c85699485b4f77997bc3fdd87c744a65c823c6a6601d554bfaf1" +checksum = "6c8f8fd8aa9b51024f216d04e134fec92cab7142814e2c1362ab19a29c4b715c" dependencies = [ "async-trait", "base64", @@ -2651,9 +2616,9 @@ dependencies = [ [[package]] name = "unftp-auth-pam" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e104bd791253aa824cc8b888379e547e64d6cc6829cfe3e90b20a798a29b9c87" +checksum = "0a38be7ed327a3d7982c1ce2ec8522e0b720efc7f698d2e4bd2498b9b53137ca" dependencies = [ "async-trait", "libunftp", @@ -2664,13 +2629,13 @@ dependencies = [ [[package]] name = "unftp-auth-rest" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4325ad9acc1cd864d05628f0dd5d5abd9954501155dbccbd82c55cc00bc63cc" +checksum = "4ae5b48b2ad988c02e28e67632192c45eda2e14840d7237a35b2c684169da91f" dependencies = [ "async-trait", "hyper", - "hyper-rustls 0.22.1", + "hyper-rustls", "libunftp", "percent-encoding", "regex", @@ -2683,9 +2648,9 @@ dependencies = [ [[package]] name = "unftp-sbe-fs" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925c077942739d808bda4c4d90e99caa7ed876aa2b3a90058689153d627a6243" +checksum = "468c47e23b2c41356019530e69e4c76171f88c5fdf8c8e55ca70cfea1c8aff78" dependencies = [ "async-trait", "futures", @@ -2699,9 +2664,9 @@ dependencies = [ [[package]] name = "unftp-sbe-gcs" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a833a01d568d8e509fca9858859647b868c6ae16fb26a0c6dca891e8365496c5" +checksum = "9bdf7f6d18fc03b80d30097bb64da3f93adb37cb03711976c7fdd20af740e2f9" dependencies = [ "async-trait", "base64", @@ -2709,7 +2674,7 @@ dependencies = [ "chrono", "futures", "hyper", - "hyper-rustls 0.22.1", + "hyper-rustls", "libunftp", "mime", "percent-encoding", @@ -2717,7 +2682,7 @@ dependencies = [ "serde_json", "tokio", "tokio-stream", - "tokio-util 0.6.9", + "tokio-util 0.7.3", "tracing", "tracing-attributes", "yup-oauth2", @@ -2797,9 +2762,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.0.0-alpha.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb3ab47baa004111b323696c6eaa2752e7356f7f77cf6b6dc7a2087368ce1ca4" +checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f" dependencies = [ "getrandom", ] @@ -2925,16 +2890,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "webpki" version = "0.22.0" @@ -3039,22 +2994,27 @@ dependencies = [ [[package]] name = "yup-oauth2" -version = "5.1.0" +version = "7.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2573621fa28865489bdf556cdb8703604f4e8498612e3041a212ac20e59c4aeb" +checksum = "98748970d2ddf05253e6525810d989740334aa7509457864048a829902db76f3" dependencies = [ + "anyhow", + "async-trait", "base64", - "chrono", "futures", "http", "hyper", - "hyper-rustls 0.22.1", + "hyper-rustls", + "itertools", "log", "percent-encoding", - "rustls 0.19.1", + "rustls", + "rustls-pemfile 0.3.0", "seahash", "serde", "serde_json", + "time 0.3.9", "tokio", + "tower-service", "url", ] diff --git a/Cargo.toml b/Cargo.toml index ef6efa5..1606f57 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "unftp" -version = "0.13.1" +version = "0.13.2" authors = [ "Agoston Horvath ", "Dávid Kosztka ", @@ -37,7 +37,7 @@ http = "0.2.8" hyper = { version = "0.14.19", features = ["server", "http1"] } hyper-rustls = "0.23.0" lazy_static = "1.4.0" -libunftp = "0.18.4" +libunftp = "0.18.5" prometheus = { version = "0.13.1", features = ["process"] } serde = { version = "1.0.137", features = ["derive"] } serde_json = "1.0.81" @@ -46,16 +46,16 @@ slog-async = "2.7.0" slog-term = "2.9.0" thiserror = "1.0.31" tokio = { version = "1.19.2", features = ["full"] } -unftp-sbe-fs = "0.2.0" -unftp-sbe-gcs = { version = "0.2.0", optional = true } -unftp-auth-rest = { version = "0.2.0", optional = true } -unftp-auth-jsonfile = { version = "0.2.0", optional = true } +unftp-sbe-fs = "0.2.1" +unftp-sbe-gcs = { version = "0.2.1", optional = true } +unftp-auth-rest = { version = "0.2.1", optional = true } +unftp-auth-jsonfile = { version = "0.2.1", optional = true } # Purely to resolve conflicts tracing= "0.1.35" [target.'cfg(unix)'.dependencies] -unftp-auth-pam = { version = "0.2.0", optional = true } +unftp-auth-pam = { version = "0.2.1", optional = true } [features] diff --git a/Makefile b/Makefile index 137232b..0a76582 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -RUST_VERSION=1.58.0 +RUST_VERSION=1.61.0 DOCKER_TAG=$(shell git describe --tags) DOCKER_TEMPLATES:=$(wildcard *.Dockerfile.template) DOCKER_FILES=$(DOCKER_TEMPLATES:%.template=%) diff --git a/docs/server/docker.md b/docs/server/docker.md index b18f523..b2193c9 100644 --- a/docs/server/docker.md +++ b/docs/server/docker.md @@ -34,6 +34,6 @@ docker run \ -v /Users/xxx/unftp/unftp.crt:/unftp.crt \ -v /Users/xxx/unftp/the-key.json:/key.json \ -ti \ - bolcom/unftp:v0.13.1-alpine + bolcom/unftp:v0.13.2-alpine ``` diff --git a/docs/server/installation.md b/docs/server/installation.md index 9a1e6c0..9e4205e 100644 --- a/docs/server/installation.md +++ b/docs/server/installation.md @@ -16,21 +16,21 @@ you can choose between a statically linked image (no PAM integration) or a dynam Linux (static, no PAM): ```sh -curl -L https://github.com/bolcom/unFTP/releases/download/v0.13.1/unftp_x86_64-unknown-linux-musl \ +curl -L https://github.com/bolcom/unFTP/releases/download/v0.13.2/unftp_x86_64-unknown-linux-musl \ | sudo tee /usr/local/bin/unftp > /dev/null && sudo chmod +x /usr/local/bin/unftp ``` Linux (dynamic with PAM support): ```sh -curl -L https://github.com/bolcom/unFTP/releases/download/v0.13.1/unftp_x86_64-unknown-linux-gnu \ +curl -L https://github.com/bolcom/unFTP/releases/download/v0.13.2/unftp_x86_64-unknown-linux-gnu \ | sudo tee /usr/local/bin/unftp > /dev/null && sudo chmod +x /usr/local/bin/unftp ``` macOS: ```sh -curl -L https://github.com/bolcom/unFTP/releases/download/v0.13.1/unftp_x86_64-apple-darwin \ +curl -L https://github.com/bolcom/unFTP/releases/download/v0.13.2/unftp_x86_64-apple-darwin \ | sudo tee /usr/local/bin/unftp > /dev/null && sudo chmod +x /usr/local/bin/unftp ``` diff --git a/docs/server/pubsub.md b/docs/server/pubsub.md index 3d3225a..3ab594a 100644 --- a/docs/server/pubsub.md +++ b/docs/server/pubsub.md @@ -72,7 +72,7 @@ All of them are of type JSON object. Examples of their format are shown below. "payload":{ "Startup":{ "libunftp_version":"0.18.3", - "unftp_version":"v0.13.1" + "unftp_version":"v0.13.2" } } }