diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index fed4ce031..36b224ba6 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -27,26 +27,6 @@ jobs:
profile: minimal
override: true
- - name: Generate Cargo.lock
- uses: actions-rs/cargo@v1
- with:
- command: generate-lockfile
- - name: Cache cargo registry
- uses: actions/cache@v1
- with:
- path: ~/.cargo/registry
- key: ${{ matrix.version }}-x86_64-pc-windows-msvc-cargo-registry-trimmed-${{ 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-trimmed-${{ hashFiles('**/Cargo.lock') }}
- - name: Cache cargo build
- uses: actions/cache@v1
- with:
- path: target
- key: ${{ matrix.version }}-x86_64-pc-windows-msvc-cargo-build-trimmed-${{ hashFiles('**/Cargo.lock') }}
-
- name: Install OpenSSL
run: |
vcpkg integrate install
@@ -74,8 +54,5 @@ jobs:
--skip=test_expect_continue
--skip=test_http10_keepalive
--skip=test_slow_request
-
- - name: Clear the cargo caches
- run: |
- cargo install cargo-cache --no-default-features --features ci-autoclean
- cargo-cache
+ --skip=test_connection_force_close
+ --skip=test_connection_server_close
diff --git a/CHANGES.md b/CHANGES.md
index 29f78e0b1..b42635b86 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,10 +1,15 @@
# Changes
+
## [2.0.NEXT] - 2020-01-xx
### Changed
-* Use `sha-1` crate instead of unmaintained `sha1` crate
+* Use `sha-1` crate instead of unmaintained `sha1` crate
+
+* Skip empty chunks when returning response from a `Stream` #1308
+
+* Update the `time` dependency to 0.2.5
## [2.0.0] - 2019-12-25
diff --git a/Cargo.toml b/Cargo.toml
index 9f0748e0c..a6783a6db 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -87,7 +87,7 @@ regex = "1.3"
serde = { version = "1.0", features=["derive"] }
serde_json = "1.0"
serde_urlencoded = "0.6.1"
-time = "0.1.42"
+time = { version = "0.2.5", default-features = false, features = ["std"] }
url = "2.1"
open-ssl = { version="0.10", package = "openssl", optional = true }
rust-tls = { version = "0.16.0", package = "rustls", optional = true }
diff --git a/actix-http/CHANGES.md b/actix-http/CHANGES.md
index ee3dae5d5..511ef4f1c 100644
--- a/actix-http/CHANGES.md
+++ b/actix-http/CHANGES.md
@@ -2,6 +2,10 @@
# [Unreleased]
+### Changed
+
+* Update the `time` dependency to 0.2.5
+
### Fixed
* Allow `SameSite=None` cookies to be sent in a response.
diff --git a/actix-http/Cargo.toml b/actix-http/Cargo.toml
index 93aaa756e..cd813e49f 100644
--- a/actix-http/Cargo.toml
+++ b/actix-http/Cargo.toml
@@ -52,7 +52,6 @@ base64 = "0.11"
bitflags = "1.2"
bytes = "0.5.3"
copyless = "0.1.4"
-chrono = "0.4.6"
derive_more = "0.99.2"
either = "1.5.3"
encoding_rs = "0.8"
@@ -77,7 +76,7 @@ serde_json = "1.0"
sha-1 = "0.8"
slab = "0.4"
serde_urlencoded = "0.6.1"
-time = "0.1.42"
+time = { version = "0.2.5", default-features = false, features = ["std"] }
# for secure cookie
ring = { version = "0.16.9", optional = true }
diff --git a/actix-http/src/body.rs b/actix-http/src/body.rs
index 850f97ee4..881764439 100644
--- a/actix-http/src/body.rs
+++ b/actix-http/src/body.rs
@@ -5,6 +5,7 @@ use std::{fmt, mem};
use bytes::{Bytes, BytesMut};
use futures_core::Stream;
+use futures_util::ready;
use pin_project::{pin_project, project};
use crate::error::Error;
@@ -389,12 +390,19 @@ where
BodySize::Stream
}
+ /// Attempts to pull out the next value of the underlying [`Stream`].
+ ///
+ /// Empty values are skipped to prevent [`BodyStream`]'s transmission being
+ /// ended on a zero-length chunk, but rather proceed until the underlying
+ /// [`Stream`] ends.
fn poll_next(&mut self, cx: &mut Context<'_>) -> Poll