1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-12-12 15:30:23 +01:00
Commit Graph

325 Commits

Author SHA1 Message Date
Aaron Hill
fe13789345
Use Pin<Box<S>> in BodyStream and SizedStream (#1328)
Fixes #1321

A better fix would be to change `MessageBody` to take a `Pin<&mut
Self>`, rather than a `Pin<&mut Self>`. This will avoid requiring the
use of `Box` for all consumers by allowing the caller to determine how
to pin the `MessageBody` implementation (e.g. via stack pinning).

However, doing so is a breaking change that will affect every user of
`MessageBody`. By pinning the inner stream ourselves, we can fix the
undefined behavior without breaking the API.

I've included @sebzim4500's reproduction case as a new test case.
However, due to the nature of undefined behavior, this could pass (and
not segfault) even if underlying issue were to regress.

Unfortunately, until rust-lang/unsafe-code-guidelines#148 is resolved,
it's not even possible to write a Miri test that will pass when the bug
is fixed.

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-31 09:39:34 +09:00
Nikolay Kim
6a0cd2dced Rename HttpServer::start() to HttpServer::run() 2019-12-22 17:12:22 +04:00
Nikolay Kim
c877840c07 rename App::register_data to App::app_data and HttpRequest::app_data returns Option<&T> instead of Option<&Data<T>> 2019-12-20 17:13:09 +06:00
Nikolay Kim
20248daeda Allow to set peer_addr for TestRequest #1074 2019-12-20 16:11:51 +06:00
Nikolay Kim
a08d8dab70 AppConfig::secure() is always false. #1202 2019-12-20 16:04:51 +06:00
Nikolay Kim
1d12ba9d5f Replace brotli with brotli2 #1224 2019-12-20 13:50:07 +06:00
Nikolay Kim
1732ae8c79 fix Bodyencoding trait usage 2019-12-18 09:30:14 +06:00
Nikolay Kim
db1d6b7963 refactor test server impl 2019-12-12 22:28:47 +06:00
Nikolay Kim
fa07415721 Replace flate2-xxx features with compress 2019-12-12 15:08:08 +06:00
Nikolay Kim
4a8a9ef405 update tests and clippy warnings 2019-12-08 12:31:16 +06:00
daxpedda
e5f3d88a4e Switch brotli compressor to rust. (#1197)
* Switch to a rustified version of brotli.

* Some memory optimizations.

* Make brotli not optional anymore.
2019-12-07 21:55:41 +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
8683ba8bb0 rename .to_async() to .to() 2019-11-21 21:36:35 +06:00
Nikolay Kim
3127dd4db6 migrate actix-web to std::future 2019-11-21 16:02:17 +06:00
Nikolay Kim
1ffa7d18d3 drop unpin constraint 2019-11-21 16:02:17 +06:00
Marat Safin
cb19ebfe0c add rustls support for actix-http and awc (#998)
* add rustls support for actix-http and awc

* fix features conflict

* remove unnecessary duplication

* test server with rust-tls

* fix

* test rustls

* awc rustls test

* format

* tests

* fix dependencies

* fixes and add changes

* remove test-server and Cargo.toml dev-dependencies changes

* cargo fmt
2019-07-31 13:02:56 -07:00
Nikolay Kim
163ca89cf4 more tests 2019-04-17 17:48:25 -07:00
Nikolay Kim
ee33f52736 make extractor config type explicit 2019-04-13 16:35:25 -07:00
Nikolay Kim
4f30fa9d46 Remove generic type for request payload, always use default 2019-04-13 14:50:54 -07:00
Nikolay Kim
0a6dd0efdf fix compression tests 2019-04-08 12:48:39 -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
309c480782 encoder sent uncompressed data before compressed 2019-04-04 15:03:40 -07:00
Nikolay Kim
bca31eb7ad remove Deref 2019-04-02 13:35:01 -07:00
Nikolay Kim
34695f4bce rename test methods; update tests 2019-03-31 20:43:00 -07:00
Nikolay Kim
193f8fb2d9 update tests 2019-03-29 18:51:07 -07:00
Douman
00526f60dc Impl BodyEncoding for Response (#740) 2019-03-29 16:29:11 -07:00
Nikolay Kim
c126713f40 add rustls support to HttpServer 2019-03-29 16:28:32 -07:00
Nikolay Kim
878f32c495 fix tests for no-default-features 2019-03-28 14:27:07 -07:00
Nikolay Kim
605ce05127 App::enable_encoding() allows to enable compression and decompression 2019-03-28 12:32:59 -07:00
Nikolay Kim
e254fe4f9c allow to override response body encoding 2019-03-27 11:29:31 -07:00
Nikolay Kim
1cca25c276 add client decompression support 2019-03-26 20:45:00 -07:00
Nikolay Kim
1904b01fc0 add content-encoding decompression 2019-03-26 15:14:32 -07:00
Nikolay Kim
50c0ddb3cd update tests 2019-03-26 12:31:51 -07:00
Nikolay Kim
86a21c956c rename .middleware to .wrap 2019-03-25 13:02:10 -07:00
Nikolay Kim
88152740c6 move macros tests to codegen crate 2019-03-17 20:20:10 -07:00
Nikolay Kim
a07ea00cc4 add basic test for proc macro 2019-03-17 13:55:03 -07:00
Nikolay Kim
b550f9ecf4 update imports 2019-03-17 01:08:56 -07:00
Nikolay Kim
1f9467e880 update tests 2019-03-14 12:01:35 -07:00
Nikolay Kim
86405cfe7a more tests 2019-03-12 22:57:09 -07:00
Nikolay Kim
fe22e83144 refactor service registration process; unify services and resources 2019-03-06 15:47:15 -08:00
Nikolay Kim
8103d33270 use custom request for FromRequest trait 2019-03-02 19:19:56 -08:00
Nikolay Kim
e6d04d24cc move fs to separate crate 2019-03-01 23:59:44 -08:00
Nikolay Kim
2d7293aaf8 copy actix-web2 2019-03-01 22:51:32 -08:00
Douman
4d45313f9d Decode special characters when handling static files 2019-01-08 10:46:58 +03:00
silwol
b1635bc0e6 Update some dependencies (#612)
* Update rand to 0.6

* Update parking_lot to 0.7

* Update env_logger to 0.6
2018-12-04 09:58:22 +03:00
François
c386353337 decode reserved characters when extracting path with configuration (#577)
* decode reserved characters when extracting path with configuration

* remove useless clone

* add a method to get decoded parameter by name
2018-11-24 16:54:11 +03:00
Nikolay Kim
9ab586e24e update actix-net dep 2018-11-08 16:06:23 -08:00
Nikolay Kim
4e7fac08b9 do not override content-length header 2018-10-08 15:30:59 -07:00
Danil Berestov
10678a22af test content length (#532) 2018-10-06 08:17:20 +03:00
Nikolay Kim
b0677aa029 fix stable compatibility 2018-10-02 19:42:24 -07:00
Nikolay Kim
2710f70e39 add H1 transport 2018-10-02 17:30:29 -07:00
Nikolay Kim
ae5c4dfb78 refactor http channels list; rename WorkerSettings 2018-10-02 15:25:32 -07:00
Nikolay Kim
d7379bd10b update server ssl tests; upgrade rustls 2018-10-02 13:41:33 -07:00
Nikolay Kim
b59712c439 add ssl handshake timeout tests 2018-10-02 11:32:43 -07:00
Nikolay Kim
724668910b fix ssh handshake timeout 2018-10-02 11:18:59 -07:00
Nikolay Kim
61c7534e03 fix stream flushing 2018-10-02 10:43:23 -07:00
Nikolay Kim
f3ce6574e4 fix client timer and add slow request tests 2018-10-02 00:19:28 -07:00
Nikolay Kim
368f73513a set tcp-keepalive for test as well 2018-10-01 22:25:53 -07:00
Nikolay Kim
c674ea9126 add StreamConfiguration service 2018-10-01 22:23:02 -07:00
Nikolay Kim
7c78797d9b proper stop for test_ws_stopped test 2018-10-01 21:30:00 -07:00
Nikolay Kim
84edc57fd9 increase sleep time 2018-10-01 21:19:27 -07:00
Nikolay Kim
1bac65de4c add websocket stopped test 2018-10-01 20:15:26 -07:00
Nikolay Kim
16945a554a add client shutdown timeout 2018-10-01 20:04:16 -07:00
Nikolay Kim
c1e0b4f322 expose internal http server types and allow to create custom http pipelines 2018-10-01 14:43:06 -07:00
Nikolay Kim
9f1417af30 refactor http service builder 2018-09-27 18:33:29 -07:00
Nikolay Kim
a63d3f9a7a cleanup ServerFactory trait 2018-09-27 18:33:29 -07:00
Nikolay Kim
6a61138bf8 enable ssl feature 2018-09-27 18:33:29 -07:00
Douman
0dc96658f2
Send response to inform client of error (#515) 2018-09-21 07:24:10 +03:00
Nikolay Kim
d65c72b44d use server keep-alive timer as slow request timer 2018-09-15 09:55:38 -07:00
Nikolay Kim
4ca9fd2ad1 remove debug print 2018-09-03 22:09:12 -07:00
Nikolay Kim
f0f67072ae Read client response until eof if connection header set to close #464 2018-09-03 21:35:59 -07:00
Nikolay Kim
968c81e267 Handling scoped paths without leading slashes #460 2018-09-02 08:14:54 -07:00
Robert Gabriel Jakabosky
0425e2776f Fix Issue #490 (#498)
* Add failing testcase for HTTP 404 response with no reason text.

* Include canonical reason test for HTTP error responses.

* Don't send a reason for unknown status codes.
2018-09-01 12:00:32 +03:00
Robert G. Jakabosky
487519acec Add client test for 'Connection: close' as reported in issue #495 2018-09-01 00:34:19 +08:00
Nikolay Kim
1716380f08 clippy fmt 2018-08-23 09:48:01 -07:00
Kornel
bdc9a8bb07 Optionally support tokio-uds's UnixStream as IoStream (#472) 2018-08-17 19:04:15 +03:00
Kornel Lesiński
a8405d0686 Fix tests on Unix 2018-08-17 13:13:48 +01:00
Nikolay Kim
eb1e9a785f allow to use fn with multiple arguments with .with()/.with_async() 2018-08-16 20:29:06 -07:00
Nikolay Kim
8eb9eb4247 flush io on complete 2018-08-08 09:12:32 -07:00
Nikolay Kim
30769e3072 fix http/2 error handling 2018-08-07 20:48:25 -07:00
Douman
900fd5a98e Correct settings headers for HTTP2
Add test to verify number of Set-Cookies
2018-08-04 18:05:41 +03:00
Jan Michael Auer
e61ef7dee4 Use zlib instead of deflate for content encoding (#442) 2018-08-03 14:56:26 +02:00
Nikolay Kim
e9c1889df4 test timing 2018-08-01 16:41:24 -07:00
jrconlin
246eafb8d2
Merge branch 'master' of https://github.com/actix/actix-web into feat/432 2018-08-01 09:36:08 -07:00
jrconlin
dca4c110dd
feature: allow TestServer to open a websocket on any URL
* added `TestServer::ws_at(uri_str)`
* modified `TestServer::ws()` to call `self.ws_at("/")` to preserve
behavior

Closes #432
2018-08-01 09:30:27 -07:00
Nikolay Kim
58230b15b9 use one thread for accept loop; refactor rust-tls support 2018-07-31 19:51:26 -07:00
Nikolay Kim
3bd43090fb use new gzdecoder, fixes gz streaming #228 2018-07-31 09:06:05 -07:00
Marat Safin
196da6d570 add rustls 2018-07-30 08:21:12 +03:00
Nikolay Kim
6b10e1eff6 rename PayloadHelper 2018-07-18 10:01:28 +06:00
Douman
29a275b0f5
Session should write percent encoded cookies and add cookie middleware test (#393)
* Should write percent encoded cookies to HTTP response

* Add cookie middleware test
2018-07-17 08:38:18 +03:00
Nikolay Kim
22385505a3 clippy warnings and fmt 2018-07-16 11:17:45 +06:00
Douman
7d753eeb8c
Private serde fork (#390)
* Fork serde_urlencoded

* Apply enum PR https://github.com/nox/serde_urlencoded/pull/30

* Add test to verify enum in query

* Docs are updated to show example of how to use enum.
2018-07-13 09:59:09 +03:00
Nikolay Kim
a5f7a67b4d clippy warnings 2018-07-06 08:24:44 +06:00
Nikolay Kim
185e710dc8 do not drop content-encoding header in case of identity #363 2018-07-06 08:24:36 +06:00
Nikolay Kim
9070d59ea8 do not read head payload 2018-07-06 08:11:36 +06:00
Douman
67e4cad281
Introduce method to set header if it is missing only (#364)
Also let default headers use it.

Closes #320
2018-07-05 19:27:18 +03:00
Nikolay Kim
80339147b9 call disconnect on write error 2018-07-05 12:50:54 +06:00
Nikolay Kim
fec6047ddc refactor HttpRequest mutability 2018-07-02 23:35:32 +06:00