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
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 2cf7b3ad20fb823314426a5e33b0805045ec1d8a
...
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
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
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
8c54054844
Use .advance() intead of .split_to()
2019-12-19 09:56: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
c1deaaeb2f
cleanup imports
2019-12-13 11:24:57 +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
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
8cba1170e6
make actix-http compile with std::future
2019-11-21 16:02:17 +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
baaa7b3fbb
Replace ClonableService with local copy
2019-07-17 13:55:44 +06:00
Nikolay Kim
d286ccb4f5
Add on-connect callback #946
2019-06-28 14:34:26 +06:00
Nikolay Kim
a548b69679
fmt
2019-06-05 08:43:13 +06:00
Nicolas Gotchac
a614be7cb5
Don't DISCONNECT from stream when reader is empty ( #870 )
...
* Don't DISCONNECT from stream when reader is empty
* Fix chunked transfer: poll_request before closing stream + Test
2019-05-29 20:37:42 +04:00
Nikolay Kim
7f12b754e9
Handle socket read disconnect
2019-05-25 03:07:40 -07:00
Nikolay Kim
f8af3b86e5
export set_date
2019-05-14 08:48:11 -07:00
Nikolay Kim
a116c4c2c7
Expose peer addr via Request::peer_addr() and RequestHead::peer_addr
2019-04-16 09:54:02 -07:00
Nikolay Kim
12e1dad42e
export TestBuffer
2019-04-10 19:43:09 -07:00
Nikolay Kim
9bb40c249f
add h1::SendResponse future; renamed to MessageBody::size
2019-04-10 12:24:17 -07:00
Nikolay Kim
c22a3a71f2
fix test
2019-04-08 19:07:11 -07:00
Nikolay Kim
561f83d044
add upgrade service support to h1 dispatcher
2019-04-08 17:51:14 -07:00
Nikolay Kim
43d325a139
allow to specify upgrade service
2019-04-08 14:51:16 -07:00
Nikolay Kim
aa78565453
use objects pool for HttpRequest; optimize nested services call
2019-04-07 23:06:21 -07:00
Nikolay Kim
219baf3323
remove PayloadWriter trait
2019-04-07 10:29:26 -07:00
Nikolay Kim
3872d3ba5a
refactor h1 dispatcher
2019-04-06 08:12:58 -07:00
Nikolay Kim
fbedaec661
add expect: 100-continue support #141
2019-04-05 16:46:44 -07:00
Nikolay Kim
bc834f6a03
remove some static contraints
2019-04-04 10:59:34 -07:00
Nikolay Kim
d846328f36
fork cookie crate
2019-03-29 21:13:39 -07:00
Nikolay Kim
faa3ea8e5b
rename BodyLength to BodySize
2019-03-27 09:24:55 -07:00
Nikolay Kim
c7ad677804
Merge actix-http project
2019-03-26 11:54:35 -07:00