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

326 Commits

Author SHA1 Message Date
Maksym Vorobiov
d9c415e540 disable weird poll test until actix-web based on actix-http:2 2020-02-27 09:37:05 +09:00
Aaron Hill
fe13789345
Use Pin<Box<S>> in BodyStream and SizedStream ()
Fixes 

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  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 2019-12-20 16:11:51 +06:00
Nikolay Kim
a08d8dab70 AppConfig::secure() is always false. 2019-12-20 16:04:51 +06:00
Nikolay Kim
1d12ba9d5f Replace brotli with brotli2 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. ()
* 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 ()
* 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 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 () 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 ()
* 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 ()
* 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 () 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 () 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 2018-09-03 21:35:59 -07:00
Nikolay Kim
968c81e267 Handling scoped paths without leading slashes 2018-09-02 08:14:54 -07:00
Robert Gabriel Jakabosky
0425e2776f Fix Issue ()
* 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 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 () 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 () 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 
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 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 ()
* 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 ()
* 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 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 ()
Also let default headers use it.

Closes 
2018-07-05 19:27:18 +03:00
Nikolay Kim
80339147b9 call disconnect on write error 2018-07-05 12:50:54 +06:00