From ca77d8d8354098a1e62b8b763267c493d4a787e0 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 19 Oct 2021 14:53:42 +0100 Subject: [PATCH 1/4] split -server and -tls msrv and raise to 1.52 (#398) --- .cargo/config.toml | 11 +++-- .github/workflows/ci.yml | 73 +++++++++++++++++++++++++-------- actix-codec/src/framed.rs | 6 +-- actix-macros/Cargo.toml | 1 + actix-macros/src/lib.rs | 2 +- actix-macros/tests/trybuild.rs | 1 + actix-rt/src/system.rs | 1 + actix-server/src/accept.rs | 7 +--- actix-server/src/worker.rs | 1 + actix-service/examples/clone.rs | 33 +++++++++++++++ actix-service/src/fn_service.rs | 2 +- actix-tls/Cargo.toml | 2 - clippy.toml | 1 + 13 files changed, 107 insertions(+), 34 deletions(-) create mode 100644 actix-service/examples/clone.rs create mode 100644 clippy.toml diff --git a/.cargo/config.toml b/.cargo/config.toml index 03a995c7..f96081ae 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -5,18 +5,21 @@ ci-doctest = "test --workspace --all-features --doc --no-fail-fast -- --nocaptur # just check the library (without dev deps) ci-check-min = "hack --workspace check --no-default-features" -ci-check-lib = "hack --workspace --feature-powerset --exclude-features io-uring check" +ci-check-lib = "hack --workspace --feature-powerset --exclude-features=io-uring check" ci-check-lib-linux = "hack --workspace --feature-powerset check" # check everything -ci-check = "hack --workspace --feature-powerset --exclude-features io-uring check --tests --examples" +ci-check = "hack --workspace --feature-powerset --exclude-features=io-uring check --tests --examples" ci-check-linux = "hack --workspace --feature-powerset check --tests --examples" # tests avoiding io-uring feature ci-test = "hack test --workspace --exclude=actix-rt --exclude=actix-server --all-features --lib --tests --no-fail-fast -- --nocapture" -ci-test-rt = " hack --feature-powerset --exclude-features io-uring test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" -ci-test-server = "hack --feature-powerset --exclude-features io-uring test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" +ci-test-rt = " hack --feature-powerset --exclude-features=io-uring test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" +ci-test-server = "hack --feature-powerset --exclude-features=io-uring test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" # test with io-uring feature ci-test-rt-linux = " hack --feature-powerset test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" ci-test-server-linux = "hack --feature-powerset test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" + +# test lower msrv +ci-test-lower-msrv = "hack --workspace --feature-powerset test --lib --tests --no-fail-fast -- --nocapture" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45841fb8..9a0b9c1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - - 1.46.0 # MSRV + - 1.52.0 # MSRV for -server and -tls - stable - nightly @@ -64,8 +64,7 @@ jobs: # - name: Generate Cargo.lock # uses: actions-rs/cargo@v1 - # with: - # command: generate-lockfile + # with: { command: generate-lockfile } # - name: Cache Dependencies # uses: Swatinem/rust-cache@v1.2.0 @@ -117,26 +116,66 @@ jobs: cargo ci-test-rt-linux cargo ci-test-server-linux - - name: Generate coverage file - if: > - matrix.target.os == 'ubuntu-latest' - && matrix.version == 'stable' - && github.ref == 'refs/heads/master' + - name: Clear the cargo caches run: | - cargo install cargo-tarpaulin - cargo tarpaulin --out Xml --verbose - - name: Upload to Codecov - if: > - matrix.target.os == 'ubuntu-latest' - && matrix.version == 'stable' - && github.ref == 'refs/heads/master' - uses: codecov/codecov-action@v1 - with: { file: cobertura.xml } + cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean + cargo-cache + + build_and_test_lower_msrv: + name: Linux / 1.46 (lower MSRV) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Install 1.46.0 # MSRV for all but -server and -tls + uses: actions-rs/toolchain@v1 + with: + toolchain: 1.46.0-x86_64-unknown-linux-gnu + profile: minimal + override: true + + - name: Install cargo-hack + uses: actions-rs/cargo@v1 + with: + command: install + args: cargo-hack + + - name: tests + run: cargo ci-test-lower-msrv - name: Clear the cargo caches run: | cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean cargo-cache + + coverage: + name: coverage + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Install Rust (nightly) + uses: actions-rs/toolchain@v1 + with: + toolchain: stable-x86_64-unknown-linux-gnu + profile: minimal + override: true + + - name: Generate Cargo.lock + uses: actions-rs/cargo@v1 + with: { command: generate-lockfile } + - name: Cache Dependencies + uses: Swatinem/rust-cache@v1.3.0 + + - name: Generate coverage file + if: github.ref == 'refs/heads/master' + run: | + cargo install cargo-tarpaulin + cargo tarpaulin --out Xml --verbose + - name: Upload to Codecov + if: github.ref == 'refs/heads/master' + uses: codecov/codecov-action@v1 + with: { file: cobertura.xml } rustdoc: name: rustdoc diff --git a/actix-codec/src/framed.rs b/actix-codec/src/framed.rs index a3a13f4d..5345314b 100644 --- a/actix-codec/src/framed.rs +++ b/actix-codec/src/framed.rs @@ -178,7 +178,7 @@ impl Framed { U: Decoder, { loop { - let mut this = self.as_mut().project(); + let this = self.as_mut().project(); // Repeatedly call `decode` or `decode_eof` as long as it is "readable". Readable is // defined as not having returned `None`. If the upstream has returned EOF, and the // decoder is no longer readable, it can be assumed that the decoder will never become @@ -186,7 +186,7 @@ impl Framed { if this.flags.contains(Flags::READABLE) { if this.flags.contains(Flags::EOF) { - match this.codec.decode_eof(&mut this.read_buf) { + match this.codec.decode_eof(this.read_buf) { Ok(Some(frame)) => return Poll::Ready(Some(Ok(frame))), Ok(None) => return Poll::Ready(None), Err(e) => return Poll::Ready(Some(Err(e))), @@ -195,7 +195,7 @@ impl Framed { log::trace!("attempting to decode a frame"); - match this.codec.decode(&mut this.read_buf) { + match this.codec.decode(this.read_buf) { Ok(Some(frame)) => { log::trace!("frame decoded from buffer"); return Poll::Ready(Some(Ok(frame))); diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index ea1b51d0..bfda142d 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -22,4 +22,5 @@ syn = { version = "^1", features = ["full"] } actix-rt = "2.0.0" futures-util = { version = "0.3.7", default-features = false } +rustversion = "1" trybuild = "1" diff --git a/actix-macros/src/lib.rs b/actix-macros/src/lib.rs index 4be79178..dae08681 100644 --- a/actix-macros/src/lib.rs +++ b/actix-macros/src/lib.rs @@ -198,5 +198,5 @@ pub fn test(args: TokenStream, item: TokenStream) -> TokenStream { fn input_and_compile_error(mut item: TokenStream, err: syn::Error) -> TokenStream { let compile_err = TokenStream::from(err.to_compile_error()); item.extend(compile_err); - return item; + item } diff --git a/actix-macros/tests/trybuild.rs b/actix-macros/tests/trybuild.rs index c7f4a5ca..2af99636 100644 --- a/actix-macros/tests/trybuild.rs +++ b/actix-macros/tests/trybuild.rs @@ -1,3 +1,4 @@ +#[rustversion::stable(1.46)] // MSRV #[test] fn compile_macros() { let t = trybuild::TestCases::new(); diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 4f262ede..2b44ad6a 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -155,6 +155,7 @@ impl System { pub struct SystemRunner { rt: Runtime, stop_rx: oneshot::Receiver, + #[allow(dead_code)] system: System, } diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index d9451d37..504f452d 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -81,14 +81,9 @@ struct Accept { } /// Array of u128 with every bit as marker for a worker handle's availability. +#[derive(Debug, Default)] struct Availability([u128; 4]); -impl Default for Availability { - fn default() -> Self { - Self([0; 4]) - } -} - impl Availability { /// Check if any worker handle is available #[inline(always)] diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index b99b2da2..ffe36f61 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -181,6 +181,7 @@ impl WorkerHandleAccept { /// Held by [ServerBuilder](crate::builder::ServerBuilder). #[derive(Debug)] pub(crate) struct WorkerHandleServer { + #[allow(dead_code)] idx: usize, tx: UnboundedSender, } diff --git a/actix-service/examples/clone.rs b/actix-service/examples/clone.rs new file mode 100644 index 00000000..1f61a648 --- /dev/null +++ b/actix-service/examples/clone.rs @@ -0,0 +1,33 @@ +use std::{future::Future, sync::mpsc, time::Duration}; + +async fn oracle(f: F) -> (u32, u32) +where + F: FnOnce() -> Fut + Clone + Send + 'static, + Fut: Future + 'static, +{ + let f1 = actix_rt::spawn(f.clone()()); + let f2 = actix_rt::spawn(f()); + + (f1.await.unwrap(), f2.await.unwrap()) +} + +#[actix_rt::main] +async fn main() { + let (tx, rx) = mpsc::channel(); + + let (r1, r2) = oracle({ + let tx = tx.clone(); + + || async move { + tx.send(()).unwrap(); + 4 * 4 + } + }) + .await; + assert_eq!(r1, r2); + + tx.send(()).unwrap(); + + rx.recv_timeout(Duration::from_millis(100)).unwrap(); + rx.recv_timeout(Duration::from_millis(100)).unwrap(); +} diff --git a/actix-service/src/fn_service.rs b/actix-service/src/fn_service.rs index 8c1a6f51..f83ef81f 100644 --- a/actix-service/src/fn_service.rs +++ b/actix-service/src/fn_service.rs @@ -52,9 +52,9 @@ pub fn fn_factory( f: F, ) -> FnServiceNoConfig where - Srv: Service, F: Fn() -> Fut, Fut: Future>, + Srv: Service, { FnServiceNoConfig::new(f) } diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 00082278..3ac1f296 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -4,9 +4,7 @@ version = "3.0.0-beta.5" authors = ["Nikolay Kim "] description = "TLS acceptor and connector services for Actix ecosystem" keywords = ["network", "tls", "ssl", "async", "transport"] -homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net.git" -documentation = "https://docs.rs/actix-tls" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/clippy.toml b/clippy.toml new file mode 100644 index 00000000..f691ea3d --- /dev/null +++ b/clippy.toml @@ -0,0 +1 @@ +msrv = "1.48" From 47f278b17ab0b45de94ffcba30e48b3dbb9f7a2a Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 19 Oct 2021 16:13:13 +0100 Subject: [PATCH 2/4] fix test macro in presence of other imports named test (#399) --- .cargo/config.toml | 2 +- actix-macros/CHANGES.md | 6 ++++++ actix-macros/Cargo.toml | 3 ++- actix-macros/src/lib.rs | 4 ++-- actix-rt/Cargo.toml | 2 +- actix-rt/tests/test-macro-import-conflict.rs | 17 +++++++++++++++++ actix-server/CHANGES.md | 1 + actix-tls/CHANGES.md | 1 + 8 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 actix-rt/tests/test-macro-import-conflict.rs diff --git a/.cargo/config.toml b/.cargo/config.toml index f96081ae..5e5a6954 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -22,4 +22,4 @@ ci-test-rt-linux = " hack --feature-powerset test --package=actix-rt --li ci-test-server-linux = "hack --feature-powerset test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" # test lower msrv -ci-test-lower-msrv = "hack --workspace --feature-powerset test --lib --tests --no-fail-fast -- --nocapture" +ci-test-lower-msrv = "hack --workspace --exclude=actix-server --exclude=actix-tls --feature-powerset test --lib --tests --no-fail-fast -- --nocapture" diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 0509eb35..8cb03dd0 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -3,6 +3,12 @@ ## Unreleased - 2021-xx-xx +## 0.2.3 - 2021-10-19 +* Fix test macro in presence of other imports named "test". [#399] + +[#399]: https://github.com/actix/actix-net/pull/399 + + ## 0.2.2 - 2021-10-14 * Improve error recovery potential when macro input is invalid. [#391] * Allow custom `System`s on test macro. [#391] diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index bfda142d..75ac8b72 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -1,9 +1,10 @@ [package] name = "actix-macros" -version = "0.2.2" +version = "0.2.3" authors = [ "Nikolay Kim ", "Ibraheem Ahmed ", + "Rob Ede ", ] description = "Macros for Actix system and runtime" repository = "https://github.com/actix/actix-net.git" diff --git a/actix-macros/src/lib.rs b/actix-macros/src/lib.rs index dae08681..be69b7b0 100644 --- a/actix-macros/src/lib.rs +++ b/actix-macros/src/lib.rs @@ -139,9 +139,9 @@ pub fn test(args: TokenStream, item: TokenStream) -> TokenStream { sig.asyncness = None; let missing_test_attr = if has_test_attr { - quote!() + quote! {} } else { - quote!(#[test]) + quote! { #[::core::prelude::v1::test] } }; let mut system = syn::parse_str::("::actix_rt::System").unwrap(); diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 942d54aa..89368e19 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -23,7 +23,7 @@ macros = ["actix-macros"] io-uring = ["tokio-uring"] [dependencies] -actix-macros = { version = "0.2.0", optional = true } +actix-macros = { version = "0.2.3", optional = true } futures-core = { version = "0.3", default-features = false } tokio = { version = "1.5.1", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } diff --git a/actix-rt/tests/test-macro-import-conflict.rs b/actix-rt/tests/test-macro-import-conflict.rs new file mode 100644 index 00000000..3760d34c --- /dev/null +++ b/actix-rt/tests/test-macro-import-conflict.rs @@ -0,0 +1,17 @@ +//! Checks that test macro does not cause problems in the presence of imports named "test" that +//! could be either a module with test items or the "test with runtime" macro itself. +//! +//! Before actix/actix-net#399 was implemented, this macro was running twice. The first run output +//! `#[test]` and it got run again and since it was in scope. +//! +//! Prevented by using the fully-qualified test marker (`#[::core::prelude::v1::test]`). + +#![cfg(feature = "macros")] + +use actix_rt::time as test; + +#[actix_rt::test] +async fn test_naming_conflict() { + use test as time; + time::sleep(std::time::Duration::from_millis(2)).await; +} diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 54096eca..a52712f7 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2021-xx-xx +* Minimum supported Rust version (MSRV) is now 1.52. ## 2.0.0-beta.6 - 2021-10-11 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 28dc612a..84d632f3 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2021-xx-xx +* Minimum supported Rust version (MSRV) is now 1.52. ## 3.0.0-beta.5 - 2021-03-29 From 669e8683709e667095e01aca6b5863b9cd12813b Mon Sep 17 00:00:00 2001 From: Edward Shen Date: Tue, 19 Oct 2021 08:48:23 -0700 Subject: [PATCH 3/4] Use tokio-rustls 0.23 (#396) Co-authored-by: Rob Ede --- actix-tls/CHANGES.md | 8 ++++++-- actix-tls/Cargo.toml | 3 ++- actix-tls/examples/tcp-rustls.rs | 20 ++++++++++++-------- actix-tls/src/accept/rustls.rs | 2 +- actix-tls/src/connect/ssl/rustls.rs | 6 +++--- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 84d632f3..0500e798 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,17 +1,21 @@ # Changes ## Unreleased - 2021-xx-xx +* Update `tokio-rustls` to `0.23` which uses `rustls` `0.20`. [#396] +* Removed a re-export of `Session` from `rustls` as it no longer exist. [#396] * Minimum supported Rust version (MSRV) is now 1.52. +[#396]: https://github.com/actix/actix-net/pull/396 + ## 3.0.0-beta.5 - 2021-03-29 -* Changed `connect::ssl::rustls::RustlsConnectorService` to return error when `DNSNameRef` +* Changed `connect::ssl::rustls::RustlsConnectorService` to return error when `DNSNameRef` generation failed instead of panic. [#296] * Remove `connect::ssl::openssl::OpensslConnectServiceFactory`. [#297] * Remove `connect::ssl::openssl::OpensslConnectService`. [#297] * Add `connect::ssl::native_tls` module for native tls support. [#295] * Rename `accept::{nativetls => native_tls}`. [#295] -* Remove `connect::TcpConnectService` type. service caller expect a `TcpStream` should use +* Remove `connect::TcpConnectService` type. service caller expect a `TcpStream` should use `connect::ConnectService` instead and call `Connection::into_parts`. [#299] [#295]: https://github.com/actix/actix-net/pull/295 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 3ac1f296..7d45189a 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -54,7 +54,7 @@ tls-openssl = { package = "openssl", version = "0.10.9", optional = true } tokio-openssl = { version = "0.6", optional = true } # rustls -tokio-rustls = { version = "0.22", optional = true } +tokio-rustls = { version = "0.23", optional = true } webpki-roots = { version = "0.21", optional = true } # native-tls @@ -67,6 +67,7 @@ bytes = "1" env_logger = "0.8" futures-util = { version = "0.3.7", default-features = false, features = ["sink"] } log = "0.4" +rustls-pemfile = "0.2.1" trust-dns-resolver = "0.20.0" [[example]] diff --git a/actix-tls/examples/tcp-rustls.rs b/actix-tls/examples/tcp-rustls.rs index 687c1f86..f347e164 100644 --- a/actix-tls/examples/tcp-rustls.rs +++ b/actix-tls/examples/tcp-rustls.rs @@ -35,25 +35,29 @@ use actix_service::ServiceFactoryExt as _; use actix_tls::accept::rustls::{Acceptor as RustlsAcceptor, TlsStream}; use futures_util::future::ok; use log::info; -use rustls::{ - internal::pemfile::certs, internal::pemfile::rsa_private_keys, NoClientAuth, ServerConfig, -}; +use rustls::{server::ServerConfig, Certificate, PrivateKey}; +use rustls_pemfile::{certs, rsa_private_keys}; #[actix_rt::main] async fn main() -> io::Result<()> { env::set_var("RUST_LOG", "info"); env_logger::init(); - let mut tls_config = ServerConfig::new(NoClientAuth::new()); - // Load TLS key and cert files let cert_file = &mut BufReader::new(File::open("./examples/cert.pem").unwrap()); let key_file = &mut BufReader::new(File::open("./examples/key.pem").unwrap()); - let cert_chain = certs(cert_file).unwrap(); + let cert_chain = certs(cert_file) + .unwrap() + .into_iter() + .map(Certificate) + .collect(); let mut keys = rsa_private_keys(key_file).unwrap(); - tls_config - .set_single_cert(cert_chain, keys.remove(0)) + + let tls_config = ServerConfig::builder() + .with_safe_defaults() + .with_no_client_auth() + .with_single_cert(cert_chain, PrivateKey(keys.remove(0))) .unwrap(); let tls_acceptor = RustlsAcceptor::new(tls_config); diff --git a/actix-tls/src/accept/rustls.rs b/actix-tls/src/accept/rustls.rs index ffac687a..50c4b3ab 100644 --- a/actix-tls/src/accept/rustls.rs +++ b/actix-tls/src/accept/rustls.rs @@ -14,7 +14,7 @@ use actix_utils::counter::{Counter, CounterGuard}; use futures_core::future::LocalBoxFuture; use tokio_rustls::{Accept, TlsAcceptor}; -pub use tokio_rustls::rustls::{ServerConfig, Session}; +pub use tokio_rustls::rustls::ServerConfig; use super::MAX_CONN_COUNTER; diff --git a/actix-tls/src/connect/ssl/rustls.rs b/actix-tls/src/connect/ssl/rustls.rs index ee8ad02d..d66ceaa5 100755 --- a/actix-tls/src/connect/ssl/rustls.rs +++ b/actix-tls/src/connect/ssl/rustls.rs @@ -1,4 +1,5 @@ use std::{ + convert::TryFrom, future::Future, io, pin::Pin, @@ -6,7 +7,6 @@ use std::{ task::{Context, Poll}, }; -pub use tokio_rustls::rustls::Session; pub use tokio_rustls::{client::TlsStream, rustls::ClientConfig}; pub use webpki_roots::TLS_SERVER_ROOTS; @@ -14,7 +14,7 @@ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; use futures_core::{future::LocalBoxFuture, ready}; use log::trace; -use tokio_rustls::webpki::DNSNameRef; +use tokio_rustls::rustls::client::ServerName; use tokio_rustls::{Connect, TlsConnector}; use crate::connect::{Address, Connection}; @@ -89,7 +89,7 @@ where trace!("SSL Handshake start for: {:?}", connection.host()); let (stream, connection) = connection.replace_io(()); - match DNSNameRef::try_from_ascii_str(connection.host()) { + match ServerName::try_from(connection.host()) { Ok(host) => RustlsConnectorServiceFuture::Future { connect: TlsConnector::from(self.connector.clone()).connect(host, stream), connection: Some(connection), From 303666278a358a854f6242f6243d97493a86eef8 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 19 Oct 2021 16:51:40 +0100 Subject: [PATCH 4/4] prepare actix-tls release 3.0.0-beta.6 --- actix-server/Cargo.toml | 2 +- actix-tls/CHANGES.md | 3 +++ actix-tls/Cargo.toml | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 8fd3112b..46a0ad1d 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -32,7 +32,7 @@ num_cpus = "1.13" tokio = { version = "1.5.1", features = ["sync"] } [dev-dependencies] -actix-codec = "0.4.0-beta.1" +actix-codec = "0.4.0" actix-rt = "2.0.0" bytes = "1" diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 0500e798..51a82e82 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2021-xx-xx + + +## 3.0.0-beta.6 - 2021-10-19 * Update `tokio-rustls` to `0.23` which uses `rustls` `0.20`. [#396] * Removed a re-export of `Session` from `rustls` as it no longer exist. [#396] * Minimum supported Rust version (MSRV) is now 1.52. diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 7d45189a..6bf8ec62 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-tls" -version = "3.0.0-beta.5" +version = "3.0.0-beta.6" authors = ["Nikolay Kim "] description = "TLS acceptor and connector services for Actix ecosystem" keywords = ["network", "tls", "ssl", "async", "transport"] @@ -38,7 +38,7 @@ native-tls = ["tokio-native-tls"] uri = ["http"] [dependencies] -actix-codec = "0.4.0-beta.1" +actix-codec = "0.4.0" actix-rt = { version = "2.2.0", default-features = false } actix-service = "2.0.0" actix-utils = "3.0.0"