1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-28 18:02:39 +01:00
Commit Graph

87 Commits

Author SHA1 Message Date
Yuki Okushi
92b5bcd13f
Check format and tweak CI config (#1619) 2020-07-22 00:28:33 +01:00
masnagam
701bdacfa2
Fix illegal chunked encoding (#1615)
Co-authored-by: Rob Ede <robjtede@icloud.com>
2020-07-21 17:24:56 +01:00
Rob Ede
6dc47c4093
fix soundness concern in h1 decoder (#1614)
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-07-21 16:25:33 +01:00
Rob Ede
0ec335a39c
bump MSRV to 1.42 (#1616) 2020-07-21 16:40:30 +09:00
Andrew
e72ee28232
Enforce HW_BUFFER_SIZE inside h1::dispatcher (#1550) 2020-06-17 08:58:23 +01:00
Taiki Endo
6c5c4ea230 Remove uses of pin_project::project attribute
pin-project will deprecate the project attribute due to some unfixable
limitations.

Refs: https://github.com/taiki-e/pin-project/issues/225
2020-06-06 06:44:14 +09:00
Rob Ede
7e8ea44d5c
remove needless BodySize::Sized64 variant 2020-05-18 00:42:51 +01:00
Rob Ede
f3b0233477
use mem::take where possible (#1507) 2020-05-17 10:54:42 +09:00
Rob Ede
5b0f7fff69
fix spelling errors in doc comments 2020-04-21 04:09:35 +01:00
Yuki Okushi
0d5646a8b6
Run rustfmt 2020-03-08 00:52:39 +09:00
Aaron Hill
e90950fee1
Re-apply commit 2cf7b3ad20
This ended up getting reverted by #1367, which re-introduced an unsound
use of `Pin::new_unchecked`

See my original PR #1374 for the reasoning behind this change.
2020-03-04 11:27:58 -05:00
Yuki Okushi
6cc83dbb67 Allow clippy lint for compatibility 2020-02-27 12:45:11 +09:00
Yuki Okushi
f27dd19093 Fix Clippy warnings 2020-02-27 12:39:04 +09:00
Yuki Okushi
7ba14fd113 Run rustfmt 2020-02-27 11:10:55 +09:00
Maksym Vorobiov
0a86907dd2 use mem::replace instead of mem::take rust 1.40+ 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
de815dd99c Fixed condition for finishing transfer of response 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
c05f9475c5 refactor dispatcher to avoid possible UB with DispatcherState Pin 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
69dab0063c Get rid of one more unsafe 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
ec5c779732 unlink MessageBody from Unpin 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
2e2ea7ab80 remove extra whitespaces and Unpins 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
9d04b250f9 This is a squashed commit:
- Convert MessageBody to accept Pin in poll_next

- add CHANGES and increase versions aligned to semver

- update crates to accomodate MessageBody Pin change

- fix tests and dependencies
2020-02-27 09:37:05 +09:00
Aaron Hill
71c4bd1b30
Remove uses of Pin::new_unchecked in h1 Dispatcher (#1374)
This removes the last uses of unsafe `Pin` functions in actix-web.

This PR adds a `Pin<Box<_>>` wrapper to `DispatcherState::Upgrade`,
`State::ExpectCall`, and `State::ServiceCall`.

The previous uses of the futures `State::ExpectCall` and `State::ServiceCall`
were Undefined Behavior - a future was obtained from `self.expect.call`
or `self.service.call`, pinned on the stack, and then immediately
returned from `handle_request`. The only alternative to using `Box::pin`
would be to refactor `handle_request` to write the futures directly into
their final location, or avoid polling them before they are returned.

The previous use of `DispatcherState::Upgrade` doesn't seem to be
unsound. However, having data pinned inside an enum that we
`std::mem::replace` would require some careful `unsafe` code to ensure
that we never call `std::mem::replace` when the active variant contains
pinned data. By using `Box::pin`, we any possibility of future
refactoring accidentally introducing undefined behavior.

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-02-26 08:21:05 +09:00
Nikolay Kim
e66312b664 add extra constraints 2020-01-10 11:36:59 +06:00
Nikolay Kim
1d12ba9d5f Replace brotli with brotli2 #1224 2019-12-20 13:50:07 +06:00
Nikolay Kim
8c54054844 Use .advance() intead of .split_to() 2019-12-19 09:56:14 +06:00
Nikolay Kim
1732ae8c79 fix Bodyencoding trait usage 2019-12-18 09:30:14 +06:00
Rajasekharan Vengalil
3b860ebdc7 Fix poll_ready call for WebSockets upgrade (#1219)
* Fix poll_ready call for WebSockets upgrade

* Poll upgrade service from H1ServiceHandler too
2019-12-17 13:34:25 +06:00
Nikolay Kim
3d64d565d9 fix warnings 2019-12-13 11:46:02 +06:00
Nikolay Kim
c1deaaeb2f cleanup imports 2019-12-13 11:24:57 +06:00
Nikolay Kim
b81417c2fa fix warnings 2019-12-13 10:59:02 +06:00
Nikolay Kim
fa07415721 Replace flate2-xxx features with compress 2019-12-12 15:08:08 +06:00
Nikolay Kim
5132257b0d Fix buffer remaining capacity calcualtion 2019-12-09 21:55:22 +06:00
Nikolay Kim
0c1f5f9edc Check Upgrade service readiness before calling it 2019-12-09 17:40:15 +06:00
Nikolay Kim
6c9f9fff73 clippy warnings 2019-12-08 00:46:51 +06:00
Nikolay Kim
205a964d8f upgrade to tokio 0.2 2019-12-05 23:35:43 +06:00
Nikolay Kim
068f047dd5 update service factory config 2019-12-02 21:37:13 +06:00
Nikolay Kim
f4c01384ec update to latest actix-net 2019-12-02 17:33:11 +06:00
Nikolay Kim
4dc31aac93 use actix_rt::test for test setup 2019-11-26 11:25:50 +06:00
Nikolay Kim
1ffa7d18d3 drop unpin constraint 2019-11-21 16:02:17 +06:00
Nikolay Kim
687884fb94 update test-server tests 2019-11-21 16:02:17 +06:00
Nikolay Kim
a6a2d2f444 update ssl impls 2019-11-21 16:02:17 +06:00
Nikolay Kim
9e95efcc16 migrate client to std::future 2019-11-21 16:02:17 +06:00
Nikolay Kim
8cba1170e6 make actix-http compile with std::future 2019-11-21 16:02:17 +06:00
Nikolay Kim
f7f410d033 fix test order dep 2019-11-06 11:20:47 -08:00
Yuki Okushi
c1f99e0775
Remove mem::uninitialized() (#1090) 2019-09-16 07:52:23 +09:00
Nikolay Kim
60b7aebd0a fmt & clippy 2019-09-12 21:52:46 +06:00
Dmitry Pypin
8873e9b39e Added FrozenClientRequest for easier retrying HTTP calls (#1064)
* Initial commit

* Added extra_headers

* Added freeze() method to ClientRequest which produces a 'read-only' copy of a request suitable for retrying the send operation

* Additional methods for FrozenClientRequest

* Fix

* Increased crates versions

* Fixed a unit test. Added one more unit test.

* Added RequestHeaderWrapper

* Small fixes

* Renamed RequestHeadWrapper->RequestHeadType

* Updated CHANGES.md files

* Small fix

* Small changes

* Removed *_extra methods from Connection trait

* Added FrozenSendBuilder

* Added FrozenSendBuilder

* Minor fix

* Replaced impl Future with concrete Future implementation

* Small renaming

* Renamed Send->SendBody
2019-09-10 10:29:32 +06:00
Nikolay Kim
63ddd30ee4 on_connect result isnt added to request extensions for http2 requests #1009 2019-09-01 13:15:02 +06:00
Nikolay Kim
2a2d7f5768 nightly clippy warnings 2019-07-17 15:53:51 +06:00
Nikolay Kim
baaa7b3fbb Replace ClonableService with local copy 2019-07-17 13:55:44 +06:00