mirror of
https://github.com/fafhrd91/actix-web
synced 2025-08-26 15:14:49 +02:00
Compare commits
11 Commits
framed-v0.
...
identity-v
Author | SHA1 | Date | |
---|---|---|---|
|
39f4b2b39e | ||
|
f6ff056b8a | ||
|
51ab4fb73d | ||
|
f5fd6bc49f | ||
|
2803fcbe22 | ||
|
67793c5d92 | ||
|
bcb5086c91 | ||
|
7bd2270290 | ||
|
a4ad5e6b69 | ||
|
6db909a3e7 | ||
|
642ae161c0 |
59
.github/workflows/macos.yml
vendored
Normal file
59
.github/workflows/macos.yml
vendored
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
name: CI (macOS)
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_and_test:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
version:
|
||||||
|
- stable
|
||||||
|
- nightly
|
||||||
|
|
||||||
|
name: ${{ matrix.version }} - x86_64-apple-darwin
|
||||||
|
runs-on: macOS-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
|
||||||
|
- name: Install ${{ matrix.version }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ matrix.version }}-x86_64-apple-darwin
|
||||||
|
profile: minimal
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Generate Cargo.lock
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: update
|
||||||
|
- name: Cache cargo registry
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.cargo/registry
|
||||||
|
key: ${{ matrix.version }}-x86_64-apple-darwin-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
- name: Cache cargo index
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.cargo/git
|
||||||
|
key: ${{ matrix.version }}-x86_64-apple-darwin-cargo-index-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
- name: Cache cargo build
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: target
|
||||||
|
key: ${{ matrix.version }}-x86_64-apple-darwin-cargo-build-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
|
||||||
|
- name: check build
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: check
|
||||||
|
args: --all --bins --examples --tests
|
||||||
|
|
||||||
|
- name: tests
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: test
|
||||||
|
args: --all --all-features --no-fail-fast -- --nocapture
|
||||||
|
--skip=test_h2_content_length
|
||||||
|
--skip=test_reading_deflate_encoding_large_random_rustls
|
67
.github/workflows/main.yml
vendored
67
.github/workflows/main.yml
vendored
@@ -1,67 +0,0 @@
|
|||||||
name: CI
|
|
||||||
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
env:
|
|
||||||
VCPKGRS_DYNAMIC: 1
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build_and_test:
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
toolchain:
|
|
||||||
- x86_64-pc-windows-msvc
|
|
||||||
# - i686-pc-windows-msvc
|
|
||||||
- x86_64-apple-darwin
|
|
||||||
version:
|
|
||||||
- stable
|
|
||||||
- nightly
|
|
||||||
include:
|
|
||||||
- toolchain: x86_64-pc-windows-msvc
|
|
||||||
os: windows-latest
|
|
||||||
arch: x64
|
|
||||||
# - toolchain: i686-pc-windows-msvc
|
|
||||||
# os: windows-latest
|
|
||||||
# arch: x86
|
|
||||||
- toolchain: x86_64-apple-darwin
|
|
||||||
os: macOS-latest
|
|
||||||
|
|
||||||
name: ${{ matrix.version }} - ${{ matrix.toolchain }}
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
|
|
||||||
- name: Install ${{ matrix.version }}
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: ${{ matrix.version }}-${{ matrix.toolchain }}
|
|
||||||
default: true
|
|
||||||
|
|
||||||
- name: Install OpenSSL
|
|
||||||
if: matrix.os == 'windows-latest'
|
|
||||||
run: |
|
|
||||||
vcpkg integrate install
|
|
||||||
vcpkg install openssl:${{ matrix.arch }}-windows
|
|
||||||
|
|
||||||
- name: check nightly
|
|
||||||
if: matrix.version == 'nightly'
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: check
|
|
||||||
args: --all --benches --bins --examples --tests
|
|
||||||
|
|
||||||
- name: check stable
|
|
||||||
if: matrix.version == 'stable'
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: check
|
|
||||||
args: --all --bins --examples --tests
|
|
||||||
|
|
||||||
- name: tests
|
|
||||||
if: matrix.toolchain != 'x86_64-pc-windows-gnu'
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: test
|
|
||||||
args: --all --all-features -- --nocapture
|
|
79
.github/workflows/windows.yml
vendored
Normal file
79
.github/workflows/windows.yml
vendored
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
name: CI (Windows)
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
env:
|
||||||
|
VCPKGRS_DYNAMIC: 1
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build_and_test:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
version:
|
||||||
|
- stable
|
||||||
|
- nightly
|
||||||
|
|
||||||
|
name: ${{ matrix.version }} - x86_64-pc-windows-msvc
|
||||||
|
runs-on: windows-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@master
|
||||||
|
|
||||||
|
- name: Install ${{ matrix.version }}
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ matrix.version }}-x86_64-pc-windows-msvc
|
||||||
|
profile: minimal
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Generate Cargo.lock
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: update
|
||||||
|
- name: Cache cargo registry
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.cargo/registry
|
||||||
|
key: ${{ matrix.version }}-x86_64-pc-windows-msvc-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
- name: Cache cargo index
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.cargo/git
|
||||||
|
key: ${{ matrix.version }}-x86_64-pc-windows-msvc-cargo-index-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
- name: Cache cargo build
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: target
|
||||||
|
key: ${{ matrix.version }}-x86_64-pc-windows-msvc-cargo-build-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
- name: Cache vcpkg package
|
||||||
|
uses: actions/cache@v1
|
||||||
|
id: cache-vcpkg
|
||||||
|
with:
|
||||||
|
path: C:\vcpkg
|
||||||
|
key: windows_x64-${{ matrix.version }}-vcpkg
|
||||||
|
|
||||||
|
- name: Install OpenSSL
|
||||||
|
if: steps.cache-vcpkg.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
vcpkg integrate install
|
||||||
|
vcpkg install openssl:x64-windows
|
||||||
|
|
||||||
|
- name: check build
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: check
|
||||||
|
args: --all --bins --examples --tests
|
||||||
|
|
||||||
|
- name: tests
|
||||||
|
uses: actions-rs/cargo@v1
|
||||||
|
with:
|
||||||
|
command: test
|
||||||
|
args: --all --all-features --no-fail-fast -- --nocapture
|
||||||
|
--skip=test_h2_content_length
|
||||||
|
--skip=test_reading_deflate_encoding_large_random_rustls
|
||||||
|
--skip=test_params
|
||||||
|
--skip=test_simple
|
||||||
|
--skip=test_expect_continue
|
||||||
|
--skip=test_http10_keepalive
|
||||||
|
--skip=test_slow_request
|
@@ -1,6 +1,6 @@
|
|||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
## [2.0.0] - 2019-12-xx
|
## [2.0.0] - 2019-12-25
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
31
MIGRATION.md
31
MIGRATION.md
@@ -14,6 +14,37 @@
|
|||||||
* `actix_http_test::TestServer` moved to `actix_web::test` module. To start
|
* `actix_http_test::TestServer` moved to `actix_web::test` module. To start
|
||||||
test server use `test::start()` or `test_start_with_config()` methods
|
test server use `test::start()` or `test_start_with_config()` methods
|
||||||
|
|
||||||
|
* `ResponseError` trait has been reafctored. `ResponseError::error_response()` renders
|
||||||
|
http response.
|
||||||
|
|
||||||
|
* Feature `rust-tls` renamed to `rustls`
|
||||||
|
|
||||||
|
instead of
|
||||||
|
|
||||||
|
```rust
|
||||||
|
actix-web = { version = "2.0.0", features = ["rust-tls"] }
|
||||||
|
```
|
||||||
|
|
||||||
|
use
|
||||||
|
|
||||||
|
```rust
|
||||||
|
actix-web = { version = "2.0.0", features = ["rustls"] }
|
||||||
|
```
|
||||||
|
|
||||||
|
* Feature `ssl` renamed to `openssl`
|
||||||
|
|
||||||
|
instead of
|
||||||
|
|
||||||
|
```rust
|
||||||
|
actix-web = { version = "2.0.0", features = ["ssl"] }
|
||||||
|
```
|
||||||
|
|
||||||
|
use
|
||||||
|
|
||||||
|
```rust
|
||||||
|
actix-web = { version = "2.0.0", features = ["openssl"] }
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## 1.0.1
|
## 1.0.1
|
||||||
|
|
||||||
|
@@ -68,7 +68,8 @@ async fn main() -> std::io::Result<()> {
|
|||||||
[Askama](https://github.com/actix/examples/tree/master/template_askama/) templates
|
[Askama](https://github.com/actix/examples/tree/master/template_askama/) templates
|
||||||
* [Diesel integration](https://github.com/actix/examples/tree/master/diesel/)
|
* [Diesel integration](https://github.com/actix/examples/tree/master/diesel/)
|
||||||
* [r2d2](https://github.com/actix/examples/tree/master/r2d2/)
|
* [r2d2](https://github.com/actix/examples/tree/master/r2d2/)
|
||||||
* [SSL / HTTP/2.0](https://github.com/actix/examples/tree/master/tls/)
|
* [OpenSSL](https://github.com/actix/examples/tree/master/openssl/)
|
||||||
|
* [Rustls](https://github.com/actix/examples/tree/master/rustls/)
|
||||||
* [Tcp/Websocket chat](https://github.com/actix/examples/tree/master/websocket-chat/)
|
* [Tcp/Websocket chat](https://github.com/actix/examples/tree/master/websocket-chat/)
|
||||||
* [Json](https://github.com/actix/examples/tree/master/json/)
|
* [Json](https://github.com/actix/examples/tree/master/json/)
|
||||||
|
|
||||||
|
@@ -7,7 +7,8 @@ use futures::StreamExt;
|
|||||||
use http::header::HeaderValue;
|
use http::header::HeaderValue;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
fn main() -> io::Result<()> {
|
#[actix_rt::main]
|
||||||
|
async fn main() -> io::Result<()> {
|
||||||
env::set_var("RUST_LOG", "echo=info");
|
env::set_var("RUST_LOG", "echo=info");
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
@@ -37,4 +38,5 @@ fn main() -> io::Result<()> {
|
|||||||
.tcp()
|
.tcp()
|
||||||
})?
|
})?
|
||||||
.run()
|
.run()
|
||||||
|
.await
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,8 @@ async fn handle_request(mut req: Request) -> Result<Response, Error> {
|
|||||||
.body(body))
|
.body(body))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() -> io::Result<()> {
|
#[actix_rt::main]
|
||||||
|
async fn main() -> io::Result<()> {
|
||||||
env::set_var("RUST_LOG", "echo=info");
|
env::set_var("RUST_LOG", "echo=info");
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
@@ -28,4 +29,5 @@ fn main() -> io::Result<()> {
|
|||||||
HttpService::build().finish(handle_request).tcp()
|
HttpService::build().finish(handle_request).tcp()
|
||||||
})?
|
})?
|
||||||
.run()
|
.run()
|
||||||
|
.await
|
||||||
}
|
}
|
||||||
|
@@ -6,7 +6,8 @@ use futures::future;
|
|||||||
use http::header::HeaderValue;
|
use http::header::HeaderValue;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
|
||||||
fn main() -> io::Result<()> {
|
#[actix_rt::main]
|
||||||
|
async fn main() -> io::Result<()> {
|
||||||
env::set_var("RUST_LOG", "hello_world=info");
|
env::set_var("RUST_LOG", "hello_world=info");
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
|
|
||||||
@@ -24,4 +25,5 @@ fn main() -> io::Result<()> {
|
|||||||
.tcp()
|
.tcp()
|
||||||
})?
|
})?
|
||||||
.run()
|
.run()
|
||||||
|
.await
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,9 @@
|
|||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
|
## [0.2.1] - 2020-01-10
|
||||||
|
|
||||||
|
* Fix panic with already borrowed: BorrowMutError #1263
|
||||||
|
|
||||||
## [0.2.0] - 2019-12-20
|
## [0.2.0] - 2019-12-20
|
||||||
|
|
||||||
* Use actix-web 2.0
|
* Use actix-web 2.0
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "actix-identity"
|
name = "actix-identity"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "Identity service for actix web framework."
|
description = "Identity service for actix web framework."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
@@ -10,15 +10,14 @@ repository = "https://github.com/actix/actix-web.git"
|
|||||||
documentation = "https://docs.rs/actix-identity/"
|
documentation = "https://docs.rs/actix-identity/"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT/Apache-2.0"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
workspace = ".."
|
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "actix_identity"
|
name = "actix_identity"
|
||||||
path = "src/lib.rs"
|
path = "src/lib.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix-web = { version = "2.0.0-rc", default-features = false, features = ["secure-cookies"] }
|
actix-web = { version = "2.0.0", default-features = false, features = ["secure-cookies"] }
|
||||||
actix-service = "1.0.1"
|
actix-service = "1.0.2"
|
||||||
futures = "0.3.1"
|
futures = "0.3.1"
|
||||||
serde = "1.0"
|
serde = "1.0"
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
|
@@ -251,6 +251,15 @@ pub struct IdentityServiceMiddleware<S, T> {
|
|||||||
service: Rc<RefCell<S>>,
|
service: Rc<RefCell<S>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<S, T> Clone for IdentityServiceMiddleware<S, T> {
|
||||||
|
fn clone(&self) -> Self {
|
||||||
|
Self {
|
||||||
|
backend: self.backend.clone(),
|
||||||
|
service: self.service.clone(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl<S, T, B> Service for IdentityServiceMiddleware<S, T>
|
impl<S, T, B> Service for IdentityServiceMiddleware<S, T>
|
||||||
where
|
where
|
||||||
B: 'static,
|
B: 'static,
|
||||||
@@ -279,7 +288,9 @@ where
|
|||||||
req.extensions_mut()
|
req.extensions_mut()
|
||||||
.insert(IdentityItem { id, changed: false });
|
.insert(IdentityItem { id, changed: false });
|
||||||
|
|
||||||
let mut res = srv.borrow_mut().call(req).await?;
|
// https://github.com/actix/actix-web/issues/1263
|
||||||
|
let fut = { srv.borrow_mut().call(req) };
|
||||||
|
let mut res = fut.await?;
|
||||||
let id = res.request().extensions_mut().remove::<IdentityItem>();
|
let id = res.request().extensions_mut().remove::<IdentityItem>();
|
||||||
|
|
||||||
if let Some(id) = id {
|
if let Some(id) = id {
|
||||||
@@ -606,9 +617,10 @@ mod tests {
|
|||||||
use std::borrow::Borrow;
|
use std::borrow::Borrow;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
use actix_service::into_service;
|
||||||
use actix_web::http::StatusCode;
|
use actix_web::http::StatusCode;
|
||||||
use actix_web::test::{self, TestRequest};
|
use actix_web::test::{self, TestRequest};
|
||||||
use actix_web::{web, App, Error, HttpResponse};
|
use actix_web::{error, web, App, Error, HttpResponse};
|
||||||
|
|
||||||
const COOKIE_KEY_MASTER: [u8; 32] = [0; 32];
|
const COOKIE_KEY_MASTER: [u8; 32] = [0; 32];
|
||||||
const COOKIE_NAME: &'static str = "actix_auth";
|
const COOKIE_NAME: &'static str = "actix_auth";
|
||||||
@@ -1045,6 +1057,7 @@ mod tests {
|
|||||||
assert_logged_in(resp, Some(COOKIE_LOGIN)).await;
|
assert_logged_in(resp, Some(COOKIE_LOGIN)).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://github.com/actix/actix-web/issues/1263
|
||||||
#[actix_rt::test]
|
#[actix_rt::test]
|
||||||
async fn test_identity_cookie_updated_on_visit_deadline() {
|
async fn test_identity_cookie_updated_on_visit_deadline() {
|
||||||
let mut srv = create_identity_server(|c| {
|
let mut srv = create_identity_server(|c| {
|
||||||
@@ -1069,4 +1082,47 @@ mod tests {
|
|||||||
);
|
);
|
||||||
assert_logged_in(resp, Some(COOKIE_LOGIN)).await;
|
assert_logged_in(resp, Some(COOKIE_LOGIN)).await;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn test_borrowed_mut_error() {
|
||||||
|
use futures::future::{lazy, ok, Ready};
|
||||||
|
|
||||||
|
struct Ident;
|
||||||
|
impl IdentityPolicy for Ident {
|
||||||
|
type Future = Ready<Result<Option<String>, Error>>;
|
||||||
|
type ResponseFuture = Ready<Result<(), Error>>;
|
||||||
|
|
||||||
|
fn from_request(&self, _: &mut ServiceRequest) -> Self::Future {
|
||||||
|
ok(Some("test".to_string()))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn to_response<B>(
|
||||||
|
&self,
|
||||||
|
_: Option<String>,
|
||||||
|
_: bool,
|
||||||
|
_: &mut ServiceResponse<B>,
|
||||||
|
) -> Self::ResponseFuture {
|
||||||
|
ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut srv = IdentityServiceMiddleware {
|
||||||
|
backend: Rc::new(Ident),
|
||||||
|
service: Rc::new(RefCell::new(into_service(|_: ServiceRequest| {
|
||||||
|
async move {
|
||||||
|
actix_rt::time::delay_for(std::time::Duration::from_secs(100)).await;
|
||||||
|
Err::<ServiceResponse, _>(error::ErrorBadRequest("error"))
|
||||||
|
}
|
||||||
|
}))),
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut srv2 = srv.clone();
|
||||||
|
let req = TestRequest::default().to_srv_request();
|
||||||
|
actix_rt::spawn(async move {
|
||||||
|
let _ = srv2.call(req).await;
|
||||||
|
});
|
||||||
|
actix_rt::time::delay_for(std::time::Duration::from_millis(50)).await;
|
||||||
|
|
||||||
|
let _ = lazy(|cx| srv.poll_ready(cx)).await;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -47,7 +47,7 @@
|
|||||||
//! configure servers.
|
//! configure servers.
|
||||||
//!
|
//!
|
||||||
//! * [web](web/index.html): This module
|
//! * [web](web/index.html): This module
|
||||||
//! provide essentials helper functions and types for application registration.
|
//! provides essential helper functions and types for application registration.
|
||||||
//!
|
//!
|
||||||
//! * [HttpRequest](struct.HttpRequest.html) and
|
//! * [HttpRequest](struct.HttpRequest.html) and
|
||||||
//! [HttpResponse](struct.HttpResponse.html): These structs
|
//! [HttpResponse](struct.HttpResponse.html): These structs
|
||||||
|
@@ -730,7 +730,7 @@ where
|
|||||||
.map_err(|e| log::error!("Can not set alpn protocol: {:?}", e));
|
.map_err(|e| log::error!("Can not set alpn protocol: {:?}", e));
|
||||||
Connector::new()
|
Connector::new()
|
||||||
.conn_lifetime(time::Duration::from_secs(0))
|
.conn_lifetime(time::Duration::from_secs(0))
|
||||||
.timeout(time::Duration::from_millis(3000))
|
.timeout(time::Duration::from_millis(30000))
|
||||||
.ssl(builder.build())
|
.ssl(builder.build())
|
||||||
.finish()
|
.finish()
|
||||||
}
|
}
|
||||||
@@ -738,7 +738,7 @@ where
|
|||||||
{
|
{
|
||||||
Connector::new()
|
Connector::new()
|
||||||
.conn_lifetime(time::Duration::from_secs(0))
|
.conn_lifetime(time::Duration::from_secs(0))
|
||||||
.timeout(time::Duration::from_millis(3000))
|
.timeout(time::Duration::from_millis(30000))
|
||||||
.finish()
|
.finish()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@@ -77,7 +77,7 @@ pub fn test_server<F: ServiceFactory<TcpStream>>(factory: F) -> TestServer {
|
|||||||
.map_err(|e| log::error!("Can not set alpn protocol: {:?}", e));
|
.map_err(|e| log::error!("Can not set alpn protocol: {:?}", e));
|
||||||
Connector::new()
|
Connector::new()
|
||||||
.conn_lifetime(time::Duration::from_secs(0))
|
.conn_lifetime(time::Duration::from_secs(0))
|
||||||
.timeout(time::Duration::from_millis(3000))
|
.timeout(time::Duration::from_millis(30000))
|
||||||
.ssl(builder.build())
|
.ssl(builder.build())
|
||||||
.finish()
|
.finish()
|
||||||
}
|
}
|
||||||
@@ -85,7 +85,7 @@ pub fn test_server<F: ServiceFactory<TcpStream>>(factory: F) -> TestServer {
|
|||||||
{
|
{
|
||||||
Connector::new()
|
Connector::new()
|
||||||
.conn_lifetime(time::Duration::from_secs(0))
|
.conn_lifetime(time::Duration::from_secs(0))
|
||||||
.timeout(time::Duration::from_millis(3000))
|
.timeout(time::Duration::from_millis(30000))
|
||||||
.finish()
|
.finish()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user