1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2025-03-21 10:32:43 +00:00
Commit graph

813 commits

Author SHA1 Message Date
fakeshadow
68d1bd88b1
remove unused flag upgrade () 2021-02-14 18:13:05 +00:00
fakeshadow
308b70b039
fix potential over read () 2021-02-14 17:36:18 +00:00
Rob Ede
7fa6333a0c
use rcgen for tls key generation () 2021-02-13 17:16:36 +00:00
Rob Ede
3279070f9f
optional cookies features () 2021-02-13 15:08:43 +00:00
fakeshadow
b37669cb3b
fix notify on drop () 2021-02-13 04:23:37 +00:00
Rob Ede
1e538bf73e
rework ci () 2021-02-12 21:53:21 +00:00
fakeshadow
366c032c36
refactor DateService () 2021-02-12 21:52:58 +00:00
fakeshadow
95113ad12f
do not self wake up when have a payload () 2021-02-12 20:33:13 +00:00
fakeshadow
ce9b2770e2
remove unused Dispatcher::new_timeout () 2021-02-12 10:37:28 +00:00
Rob Ede
4fc7d76759
s/websocket/WebSocket in docs 2021-02-12 00:27:20 +00:00
Rob Ede
81bef93e5e
add time parser year shift tests 2021-02-12 00:15:25 +00:00
Rob Ede
31d9ed81c5
change rustfmt line width to 96 2021-02-11 23:03:17 +00:00
Rob Ede
c1af5089b9
add 431 and 451 status codes 2021-02-11 22:58:40 +00:00
Rob Ede
77efc09362
hide httpmessage mod 2021-02-11 22:58:40 +00:00
Rob Ede
871ca5e4ae
stop claiming actor support 2021-02-11 22:58:40 +00:00
fakeshadow
ceace26ed4
remove unused flag POLLED () 2021-02-11 14:19:14 -08:00
fakeshadow
75a9a72e78
clean up poll_response. add comments () 2021-02-11 14:54:42 +00:00
fakeshadow
d9d0d1d1a2
reduce unsafe () 2021-02-10 23:11:12 +00:00
Rob Ede
ea5ce3befb
prepare actix-http 3.0.0-beta.3 release 2021-02-10 18:36:14 +00:00
Rob Ede
a290e58982
prepare beta 2 release set () 2021-02-10 12:10:03 +00:00
fakeshadow
dcad9724bc
ensure poll_flush on h1 connection disconnect () 2021-02-10 10:11:53 +00:00
Rob Ede
949d14ae2b
clean up header map () 2021-02-09 22:59:17 +00:00
fakeshadow
a6ed4aee84
add poll_flush after a non blocked write to h1 dispatcher () 2021-02-09 22:32:46 +00:00
fakeshadow
519d7f2b8a
add trust-dns optional feature for actix-http and awc () 2021-02-09 10:41:20 +00:00
fakeshadow
266cf0622c
reduce branch.remove deadcode for h1 dispatcher () 2021-02-07 22:48:27 +00:00
fakeshadow
dbc47c9122
optimize actix-http messages () 2021-02-07 20:19:10 +00:00
fakeshadow
4c243cbf89
simplify methods of awc::connect::Connect trait () 2021-02-07 18:56:39 +00:00
Alexander Jackson
deafb7c8b8
Improve impl ResponseError documentation ()
Co-authored-by: Rob Ede <robjtede@icloud.com>
2021-02-07 04:54:41 +00:00
Rob Ede
9eaea6a2fd
tweak feature flags 2021-02-07 03:54:58 +00:00
fakeshadow
830fb2cdb2
properly drop h2 connection () 2021-02-07 03:51:36 +00:00
fakeshadow
7cfed73be8
fix memory usage for h1 and read bug on buffer size. () 2021-02-07 03:20:35 +00:00
fakeshadow
41bc04b1c4
Use immutable reference of service state. Update awc dns resolver. () 2021-02-07 01:00:40 +00:00
fakeshadow
20cf0094e5
fix master branch build. change web::block output type. () 2021-02-06 16:23:59 +00:00
Logan Magee
0c8196f8b0
Remove HttpResponseBuilder::json2() ()
It's not necessary to keep both json() and json2() around since the
former reduces the ownership of its parameter to a borrow only to pass
the reference to the latter. Users can instead borrow themselves when
passing an owned value: there doesn't need to be two separate functions.

This change also makes HttpResponseBuilder::json() take T: Deref so it
can accept both references and web extractors like web::Json.
2021-01-18 12:14:29 +00:00
Rob Ede
ee10148444
revive commented out tests () 2021-01-17 05:19:32 +00:00
fakeshadow
1c95fc2654
Refactor poll_keepalive for readability () 2021-01-16 00:15:06 +00:00
Rob Ede
0a506bf2e9
cleanup top level doc comments 2021-01-15 05:38:50 +00:00
Rob Ede
f976150b67
return option item from Extensions::insert () 2021-01-15 04:22:42 +00:00
Rob Ede
b1dd8d28bc
response header rework () 2021-01-15 02:11:10 +00:00
fakeshadow
d34a8689e5
Refactor h1 encoder () 2021-01-12 14:38:53 +00:00
fakeshadow
7affc6878e
simplify h1 dispatcher ()
Co-authored-by: Rob Ede <robjtede@icloud.com>
2021-01-11 00:13:56 +00:00
fakeshadow
fe392abeb4
remove actix-threadpool.use actix_rt::task::spawn_blocking () 2021-01-09 16:04:19 +00:00
fakeshadow
f6cc829758
remove leaked box in REQUEST_POOL and RESPONSE_POOL () 2021-01-09 15:40:20 +00:00
Rob Ede
6575ee93f2
big clean up and docs improvmenet of types mod () 2021-01-09 13:17:19 +00:00
fakeshadow
188ee44f81
remove copyless dependency () 2021-01-07 21:55:00 +00:00
fakeshadow
a4c9aaf337
fix extra branch in h1 dispatcher timer () 2021-01-07 20:42:09 +00:00
Rob Ede
c09186a2c0
prepare v4 beta releases () 2021-01-07 20:02:08 +00:00
Rob Ede
dc23559f23
address clippy lints 2021-01-07 02:04:26 +00:00
fakeshadow
6d710629af
fix bug where upgrade future is not reset properly () 2021-01-07 00:57:34 +00:00
Rob Ede
85753130d9
fmt 2021-01-07 00:35:19 +00:00
Rob Ede
00ba8d5549
add http3 variant to protocol enum 2021-01-06 18:58:24 +00:00
Rob Ede
51e9e1500b
add docs to recent additions 2021-01-06 18:52:06 +00:00
fakeshadow
a03dbe2dcf
replace cloneable service with httpflow abstraction () 2021-01-06 18:43:52 +00:00
fakeshadow
93161df141
clean up body type () 2021-01-04 23:47:38 +00:00
fakeshadow
e567873326
optimize message pool release () 2021-01-04 13:03:46 +00:00
Rob Ede
7d632d0b7b
use ByteString as container for websocket text message () 2021-01-04 11:27:32 +00:00
Rob Ede
2d4a174420
fmt 2021-01-04 01:01:35 +00:00
Rob Ede
21f6c9d7a5
improve code readability 2021-01-04 00:49:02 +00:00
fakeshadow
32de9f8840
Tokio 1.0 ()
Co-authored-by: Rob Ede <robjtede@icloud.com>
2021-01-03 23:47:04 +00:00
Rob Ede
1f202d40e4
optimize write_camel_case in h1 encoder () 2021-01-03 16:53:01 +00:00
Rob Ede
a1b00b2cd0
change unreleased year 2021-01-02 00:12:18 +00:00
Rob Ede
2a2a20c3e7
bump msrv to 1.46 () 2020-12-28 00:44:15 +00:00
Rob Ede
093d3a6c59
remove deprecated on_connect methods () 2020-12-27 23:23:30 +00:00
fakeshadow
f9fcf56d5c
reduce branch in actix_http::h1::codec () 2020-12-27 20:37:53 +00:00
fakeshadow
1032f04ded
remove unused actix_http::h1::OneRequest () 2020-12-26 12:46:36 +00:00
fakeshadow
ecf08d5156
Remove boxed future from h1 Dispatcher () 2020-12-24 19:15:17 +00:00
Rob Ede
2a7f2c1d59
dispatcher internals testing () 2020-12-23 01:28:17 +00:00
Logan Magee
4dccd092f3
Bump rand from 0.7.x to 0.8.x () 2020-12-22 23:45:31 +00:00
fakeshadow
95ccf1c9bc
replace actix_utils::oneshot with futures_channle::oneshot () 2020-12-21 16:42:20 +00:00
Aravinth Manivannan
fabc68659b
Intradoc links conversion ()
* switching to nightly for intra-doc links

* actix-files intra-doc conversion

* more specific Result

* intradoc conversion complete

* rm blank comments and readme doc link fixes

* macros and broken links
2020-12-13 13:28:39 +00:00
Juan Aguilar
542db82282
Simplify wake up of task () 2020-12-12 20:07:06 +00:00
Rob Ede
ae63eb8bb2
fix clippy warnings ()
* fix clippy warnings

* prevent CI fail status caused by codecov
2020-12-09 11:22:19 +00:00
Rob Ede
efc317d3b0
prepare actix-http and awc releases 2020-11-25 00:07:56 +00:00
Rob Ede
5af46775b8
refactor quality and use TryFrom instead of custom trait () 2020-11-24 11:37:05 +00:00
Rob Ede
70f4747a23
add method for getting accept type preference () 2020-11-24 10:08:57 +00:00
Yuki Okushi
4bfd5c2781
Upgrade serde_urlencoded to 0.7 () 2020-11-06 01:36:15 +09:00
Rob Ede
61b65aa64a
add common 1xx http response builders ()
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-11-02 18:23:18 +09:00
Sebastian Mayr
5468c3c410
Drop content length headers from 101 responses ()
Co-authored-by: Sebastian Mayr <smayr@atlassian.com>
2020-11-02 17:44:14 +09:00
Yuki Okushi
b6385c2b4e Remove CoC on actix-http as duplicated 2020-10-31 12:12:19 +09:00
Rob Ede
156c97cef2
prepare awc release 2.0.1 2020-10-30 02:50:53 +00:00
Rob Ede
798d744eef
prepare http release 2.1.0 2020-10-30 02:19:56 +00:00
Rob Ede
4cb833616a
deprecate builder if-x methods () 2020-10-30 02:10:05 +00:00
Rob Ede
9963a5ef54
expose on_connect v2 ()
Co-authored-by: Mikail Bagishov <bagishov.mikail@yandex.ru>
2020-10-30 02:03:26 +00:00
Augusto César Dias
7030bf5fe8
Adding app_data to ServiceConfig ()
Co-authored-by: Rob Ede <robjtede@icloud.com>
Co-authored-by: Augusto <augusto@flowciety.de>
2020-10-26 17:02:45 +00:00
ghizzo01
20078fe603
Bump pin-project to 1.0 () 2020-10-25 19:41:44 +09:00
ghizzo01
f92742bdac
Bump base64 to 0.13 () 2020-10-19 18:24:22 +01:00
Rob Ede
e563025b16
always construct shortslice using debug checked new constructor () 2020-10-19 12:51:30 +01:00
Yuki Okushi
c2c71cc626
Fix/suppress clippy warnings () 2020-10-01 18:19:09 +09:00
Igor Aleksanov
f9e3f78e45
eemove non-relevant comment from actix-http README.md () 2020-09-20 17:21:53 +01:00
Rob Ede
64a2c13cdf
the big three point oh () 2020-09-11 13:50:10 +01:00
Rob Ede
bf53fe5a22
bump actix dependency to v0.10 () 2020-09-11 12:09:52 +01:00
Rob Ede
7787638f26
fix CI clippy warnings () 2020-09-10 14:46:35 +01:00
Rob Ede
059d1671d7
prepare release beta 4 () 2020-09-09 22:14:11 +01:00
Rob Ede
9d0534999d
bump connect and tls versions () 2020-09-09 09:20:54 +01:00
Rob Ede
9a9d4b182e
document all remaining unsafe usages ()
adds some debug assertions where appropriate
2020-09-03 10:00:24 +01:00
Rob Ede
8497b5f490
integrate with updated actix-{codec, utils} () 2020-08-24 10:13:35 +01:00
Yuki Okushi
ff2ca0f420
Update rustls to 0.18 () 2020-08-18 00:28:39 +09:00
Yuki Okushi
aa2bd6fbfb
http: Bump up to 2.0.0-beta.3 () 2020-08-14 19:42:14 +09:00
fakeshadow
160995b8d4
fix awc pool leak () 2020-08-09 21:49:43 +01:00
Rob Ede
cf1c8abe62
prepare release http & awc () 2020-07-22 01:13:10 +01:00
Yuki Okushi
92b5bcd13f
Check format and tweak CI config () 2020-07-22 00:28:33 +01:00
masnagam
701bdacfa2
Fix illegal chunked encoding ()
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 ()
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 () 2020-07-21 16:40:30 +09:00
Yuki Okushi
1382094c15
Avoid using deprecated / in license field 2020-07-14 11:19:56 +09:00
Rob Ede
327e472e44
prepare http-2.0.0-beta.1 release () 2020-07-13 15:35:30 +01:00
Patrick Tescher
e10eb648d9
Fix leaks with actix_http's client () 2020-07-10 22:35:22 +01:00
Yuki Okushi
deab634247
actix-http: Update sha-1 to 0.9 () 2020-07-03 01:08:24 +01:00
Rob Ede
eb0eda69c6
migrate cookie handling to cookie crate () 2020-06-19 14:34:14 +01:00
Andrew
e72ee28232
Enforce HW_BUFFER_SIZE inside h1::dispatcher () 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
Yuki Okushi
5286b8aed7
Remove AppVeyor config 2020-06-03 03:39:35 +09:00
Stephen Stack
621ebec01a
Fix typo in timeout error display () 2020-06-02 18:04:49 +01:00
Yuki Okushi
4a955c425d
Update actix-http-test dependency to 2.0.0-alpha.1 2020-05-23 12:14:17 +09:00
Nick Kolpinskiy
7d8fb631a0 Use itoa in the content-length helper 2020-05-21 22:25:34 +03:00
Yuki Okushi
48fa78e182
http: Bump up to 2.0.0-alpha.4 2020-05-21 15:22:07 +09:00
Yuki Okushi
8391427905
http: Update base64 to 0.12 2020-05-21 09:51:32 +09:00
Yuki Okushi
292af145cb
http: Minimize futures dependencies 2020-05-19 08:29:11 +09:00
Omid Rad
32a37b7282
Remove content_length from ResponseBuilder ()
* Remove content_length since it'll be overwritten by the response body. FIXES 

* Add setting of Content-Length to the no_chunking function

* Add changes and migration documentations

* Update MIGRATION.md

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>

Co-authored-by: Rob Ede <robjtede@icloud.com>
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-05-19 07:46:31 +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 () 2020-05-17 10:54:42 +09:00
Rob Ede
996f1d7eae
bump msrv in ci and readme 2020-05-13 01:57:37 +01:00
Takeru Sato
63864ecf9e
support parsing of SameSite=None () 2020-05-12 17:48:35 +01:00
Yuki Okushi
0bc4a5e703
http: Bump up to 2.0.0-alpha.3 2020-05-08 02:35:45 +09:00
Rob Ede
9d94fb91b2
correct spelling of ConnectError::Unresolved ()
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-05-08 02:26:48 +09:00
Rob Ede
b521e9b221
conditional test compilation [range, charset] ()
* conditionally compile range and charset tests

* remove deprecated try macros

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-05-03 22:33:29 +09:00
Rob Ede
f37cb6dd0b
refactor h1 status line helper to remove unsafe usage ()
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-05-03 17:37:40 +09:00
Mikail Bagishov
d5ceae2074
Replace deprecated now with now_utc ()
* Replace deprecated now with now_utc

* Update doctest
2020-05-02 10:14:50 +01:00
Rob Ede
c27d3fad8e
clarify resource/scope app data overriding ()
* relocate FnDataFactory

* clarify app data overriding in Scope and Resource

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-04-30 02:20:47 +09:00
Huston Bokinsky
b047413b39
Small ws codec fix ()
* Small ws codec fix

* Update actix-http/Changes.md

Co-authored-by: Huston Bokinsky <huston@deepgram.com>
2020-04-29 11:13:09 +09:00
Rob Ede
5b0f7fff69
fix spelling errors in doc comments 2020-04-21 04:09:35 +01:00
Yuki Okushi
54619cb680
actix-http: Remove failure support () 2020-04-16 06:54:34 +09:00
Otavio Salvador
146ae4da18 Implement std::error::Error for our custom errors
For allowing a more ergonomic use and better integration on the
ecosystem, this adds the `std::error::Error` `impl` for our custom
errors.

We intent to drop this hand made code once `derive_more` finishes the
addition of the Error derive support[1]. Until that is available, we
need to live with that.

1. https://github.com/JelteF/derive_more/issues/92

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2020-03-18 00:22:18 -03:00
Yuki Okushi
e718f65121
Update tests 2020-03-08 16:42:45 +09:00
Yuki Okushi
b93e1555ec
Update actix-connect to 2.0.0-alpha.2 2020-03-08 15:27:40 +09:00
Yuki Okushi
0d5646a8b6
Run rustfmt 2020-03-08 00:52:39 +09:00
Yuki Okushi
6f63acaf01
Bump up to 2.0.0-alpha.2 2020-03-08 00:48:45 +09:00
Yuki Okushi
7172885beb
Update changelog 2020-03-08 00:43:17 +09:00
Yuki Okushi
cf721c5fff
Update README example 2020-03-08 00:43:01 +09:00
Maxim Vorobjov
10e3e72595
Http2 client configuration to improve performance ()
* add defaults for http2 client configuration

* fix spaces

* Add changes text for extended H2 defaults buffers

* client: configurable H2 window sizes and max_http_version

* add H2 window size configuration and max_http_version to awc::ClientBuilder

* add awc::ClientBuilder H2 window sizes and max_http_version

* add test for H2 window size settings

* cleanup comment

* Apply code review fixes

* Code review fix for awc ClientBuilder

* Remove unnecessary comments on code review

* pin quote version to resolve build issue

* max_http_version to accept http::Version

* revert fix for quote broken build
2020-03-07 11:09:31 +09:00
Aaron Hill
e90950fee1
Re-apply commit 2cf7b3ad20
This ended up getting reverted by , which re-introduced an unsound
use of `Pin::new_unchecked`

See my original PR  for the reasoning behind this change.
2020-03-04 11:27:58 -05:00
Yuki Okushi
9d661dc4f3 Update changelog 2020-03-04 15:20:14 +09:00
Yuki Okushi
687dc609dd Update rustls to 0.17 2020-03-04 15:11:31 +09:00
Yuki Okushi
b9b52079e0 Update actix-tls to 2.0.0-alpha.1 2020-03-04 15:10:23 +09:00
Yuki Okushi
117d28f7ba Update actix-connect to 2.0.0-alpha.1 2020-03-04 15:09:31 +09:00
Yuki Okushi
b4d63667df Demote lint level to warn 2020-02-27 22:39:11 +09:00
Yuki Okushi
6cc83dbb67 Allow clippy lint for compatibility 2020-02-27 12:45:11 +09:00
Yuki Okushi
15a2587887 Bump up to 2.0.0-alpha.1 2020-02-27 12:39:04 +09:00
Yuki Okushi
0173f99726 Update changelog 2020-02-27 12:39:04 +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
Yuki Okushi
903ae47baa dev-deps: Update env_logger to 0.7 2020-02-27 11:08:45 +09:00
Yuki Okushi
cd1765035c Avoid re-definition 2020-02-27 09:42:32 +09:00
Maksym Vorobiov
ea28219d0f reenable actix-http test-ws 2020-02-27 09:42:32 +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
78749a4b7e rollback actix-http version change 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
e6078bf792 Fix EncoderBody enum to align with Body::Message 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
a84b37199a Add Unpin to Body to get rid of unsafe in MessageBody 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
eeebc653fd change actix-http version to alpha 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
09a391a3ca rollback changes to actix-web, awc and test-server for now 2020-02-27 09:37:05 +09:00
Maksym Vorobiov
62aba424e2 Rollback actix-http-test dependency to show the issue 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
Maksym Vorobiov
a4148de226 add test crashing with segfault according to 2020-02-27 09:36:30 +09:00
Maxim Vorobjov
48ef4d7a26
Add actix-http support for actix error messages ()
* Moved actix-http for actix from actix crate

* remove resolver feature

* renamed actix feature to actor

* fixed doc attr for actors, add documentation
2020-02-27 09:34:49 +09:00
Aaron Hill
71c4bd1b30
Remove uses of Pin::new_unchecked in h1 Dispatcher ()
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
Yuki Okushi
2a72e8d119
Merge branch 'master' into replace-unsafe-content-length-helper 2020-02-25 14:30:04 +09:00
Yuki Okushi
845ce3cf34 Fix doc comment 2020-02-25 07:46:03 +09:00
Rob Ede
94da08f506
increase content-length fast path to responses up to 1MB 2020-02-24 20:58:41 +00:00
Yuki Okushi
c8ccc69b93 actix-http: update time to 0.2.7 2020-02-23 07:09:00 +09:00
Daniel YU
245f96868a
impl downcast_ref for MessageBody ()
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-02-21 13:31:51 +09:00
Aaron Hill
e6811e8818
Use #[pin_project] with ConnectorPoolSupport
This removes a use of `Pin::get_unchecked_mut`
2020-02-19 21:42:53 -05:00
Rob Ede
f266b44cb0
replace unsafe blocks in write_usize helper 2020-02-16 15:20:25 +00:00
Rob Ede
31a3515e90
add safe vs unsafe benchmarks 2020-02-16 14:31:06 +00:00
Rob Ede
82b2786d6b
replace unsafe content length implementation 2020-02-16 14:31:05 +00:00
zero-systems
728b944360
Extensions module improvement and tests. ()
* replace get.is_some to contains_key

* Add tests

* remove unnecessary box cast

* fix missing uints

* asserts fix

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-02-07 16:08:25 +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
Aaron Hill
3033f187d2
Enforce safety of downcast_ref at compile time. ()
* Enforce safety of `downcast_ref` at compile time.

The safety of `downcast_ref` requires that `__private_get_type_id__` not
be overriden by callers, since the returned `TypeId` is used to check if
the cast is safe. However, all trait methods in Rust are public, so
users can override `__private_get_type_id__` despite it being
`#[doc(hidden)]`.

This commit makes `__private_get_type_id__` return a type with a private
constructor, ensuring that the only possible implementation is the
default implementation. A more detailed explanation is provided in the
comments added to the file.

Note that the standard library was affected by this type of issue with
the `Error::type_id` function: see https://blog.rust-lang.org/2019/05/14/Rust-1.34.2.html#whats-in-1.34.2-stable

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-30 23:43:35 +09:00
Aaron Hill
276a5a3ee4
Replace UnsafeCell with Cell in DateServiceInner ()
* Replace `UnsafeCell` with `Cell` in `DateServiceInner`

This ensures that it's impossible to cause undefined behavior by
accidentally violating Rust's aliasing rules (e.g. passing a closure to
`set_date` which ends up invoking `reset` or `update` on the inner
`DateServiceInner`).

There might be a tiny amount of overhead from copying the `Option<(Date,
Instant)>` rather than taking a reference, but it shouldn't be
measurable.

Since the wrapped type is `Copy`, a `Cell` can be used, avoiding the
runtime overhead of a `RefCell`.

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-29 21:05:08 +09:00
kevinpoitra
e634e64847 Upgrade time to 0.2.5 ()
* Use `OffsetDateTime` instead of `PrimitiveDateTime`

* Parse time strings with `PrimitiveDateTime::parse` instead of `OffsetDateTime::parse`

* Remove unused `time` dependency from actix-multipart

* Fix a few errors with time related tests from the `time` upgrade

* Implement logic to convert a RFC 850 two-digit year into a full length year, and organize time parsing related functions

* Upgrade `time` to 0.2.2

* Correctly parse C's asctime time format using time 0.2's new format patterns

* Update CHANGES.md

* Use `time` without any of its deprecated functions

* Enforce a UTC time offset when converting an `OffsetDateTime` into a Header value

* Use the more readable version of `Duration::seconds(0)`, `Duration::zero()`

* Remove unneeded conversion of time::Duration to std::time::Duration

* Use `OffsetDateTime::as_seconds_f64` instead of manually calculating the amount of seconds from nanoseconds

* Replace a few additional instances of `Duration::seconds(0)` with `Duration::zero()`

* Truncate any nanoseconds from a supplied `Duration` within `Cookie::set_max_age` to ensure two Cookies with the same amount whole seconds equate to one another

* Fix the actix-http:🍪:do_not_panic_on_large_max_ages test

* Convert `Cookie::max_age` and `Cookie::expires` examples to `time` 0.2

Mainly minor  changes. Type inference can be used alongside the new
`time::parse` method, such that the type doesn't need to be specified.
This will be useful if a refactoring takes place that changes the type.
There are also new macros, which are used where possible.

One change that is not immediately obvious, in `HttpDate`, there was an
unnecessary conditional. As the time crate allows for negative durations
(and can perform arithmetic with such), the if/else can be removed
entirely.

Time v0.2.3 also has some bug fixes, which is why I am not using a more
general v0.2 in Cargo.toml.

v0.2.3 has been yanked, as it was backwards imcompatible. This version
reverts the breaking change, while still supporting rustc back to
1.34.0.

* Add missing `time::offset` macro import

* Fix type confusion when using `time::parse` followed by `using_offset`

* Update `time` to 0.2.5

* Update CHANGES.md

Co-authored-by: Jacob Pratt <the.z.cuber@gmail.com>
2020-01-28 20:44:22 +09:00
Kai Ren
cdba30d45f Skip empty chucks for BodyStream and SizedStream ()
* Skip empty chucks for BodyStream and SizedStream when streaming response ()

* Fix tests to fail on previous implementation

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-28 18:28:09 +09:00
Aaron Hill
74dcc7366d Remove several uses of Pin::new_unchecked ()
Most of the relevant struct already had a `#[pin_project]` attribute,
but it wasn't being used.

The remaining uses of `Pin::new_unchecked` all involve going from a
`&mut T` to a `Pin<&mut T>`, without directly observing a `Pin<&mut T>`
first. As such, they cannot be replaced by `pin_project`

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-28 12:35:51 +09:00
Maxim Vorobjov
8888520d83 Add benchmark for full stack request lifecycle ()
* add benchmark for full stack request lifecycle

* add direct service benchmarks

* fix newline

* add cloneable service benchmarks

* remove cloneable bench experiments + cargo fmt

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-25 08:05:25 +09:00
Maxim Vorobjov
58844874a0 Fixing convert UnsafeCell to RefCell in CloneableService ()
Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-24 14:51:38 +09:00
Rob Ede
a3287948d1 allow explicit SameSite=None cookies ()
fixes 
2020-01-23 10:08:23 +09:00
linkmauve
abb462ef85 Replace sha1 dependency with sha-1 ()
* Replace sha1 dependency with sha-1

This other crate is being maintained, and it offers better performances
when using the `asm` feature (especially [on
AArch64](https://github.com/RustCrypto/hashes/pull/97)).

* Update CHANGES.md with the sha-1 migration

* Add a test for hash_key()
2020-01-11 02:34:31 +09:00
Nikolay Kim
e66312b664 add extra constraints 2020-01-10 11:36:59 +06:00
linkmauve
f5fd6bc49f Fix actix-http examples ()
Fix actix-http examples
2020-01-07 00:15:04 +09:00
Nikolay Kim
c7f3915779 update actix-service dep 2019-12-22 16:39:25 +04:00
Nikolay Kim
1d12ba9d5f Replace brotli with brotli2 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 ()
* Fix poll_ready call for WebSockets upgrade

* Poll upgrade service from H1ServiceHandler too
2019-12-17 13:34:25 +06:00
Andrii Radyk
30dcaf9da0 fix deprecated Error::description () 2019-12-16 07:43:19 +06:00
Nikolay Kim
cb705317b8 compile with default-features off 2019-12-15 13:28:54 +06:00
Nikolay Kim
e8e0f98f96 fix docs.rs features list 2019-12-13 12:41:48 +06:00
Nikolay Kim
fac6dec3c9 update deps 2019-12-13 12:36:15 +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
4937c9f9c2 refactor http-test server 2019-12-12 23:08:38 +06:00
Nikolay Kim
fa07415721 Replace flate2-xxx features with compress 2019-12-12 15:08:08 +06:00
Nikolay Kim
b4b3350b3e Add websockets continuation frame support 2019-12-12 14:06:54 +06:00
0x1793d1
1b8d747937 Fix extra line feed () 2019-12-12 07:05:39 +06:00
Nikolay Kim
131c897099 upgrade to actix-net release 2019-12-11 19:20:20 +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
Sameer Dhar
e4382e4fc1 Fix broken docs ()
Fixed un escaped brackets in lib.rs, and reflowed links to ConnectionInfo in app, config, and server.rs
2019-12-09 10:02:43 +06:00
Nikolay Kim
a3ce371312 ws ping and pong uses bytes 2019-12-09 07:01:22 +06:00
Nikolay Kim
b92eafb839 prepare actix-http release 2019-12-08 20:15:51 +06:00
Nikolay Kim
1f3ffe38e8 update actix-service dep 2019-12-08 19:25:24 +06:00
Nikolay Kim
4a8a9ef405 update tests and clippy warnings 2019-12-08 12:31:16 +06:00
Nikolay Kim
6c9f9fff73 clippy warnings 2019-12-08 00:46:51 +06:00
Nikolay Kim
7ec5ca88a1 update changes 2019-12-07 22:01:55 +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
0ba125444a Add impl ResponseBuilder for Error 2019-12-07 21:41:34 +06:00
daxpedda
4921243add Fix rustls build. () 2019-12-07 16:14:09 +06:00
Nikolay Kim
1729a52f8b prepare alpha.3 release 2019-12-07 13:00:03 +06:00
Nikolay Kim
205a964d8f upgrade to tokio 0.2 2019-12-05 23:35:43 +06:00
Nikolay Kim
b45c6cd66b replace hashbrown with std hashmap 2019-12-04 18:33:43 +06:00
Nikolay Kim
14075ebf7f use released versions of actix-net 2019-12-02 23:33:39 +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
56b9f11c98 disable rustls 2019-11-27 21:07:49 +06:00
Nikolay Kim
f73f97353b refactor ResponseError trait 2019-11-26 16:07:39 +06:00
Nikolay Kim
4dc31aac93 use actix_rt::test for test setup 2019-11-26 11:25:50 +06:00
Nikolay Kim
c1c44a7dd6 upgrade derive_more 2019-11-25 17:59:14 +06:00
Nikolay Kim
57981ca04a update tests to async handlers 2019-11-22 11:49:35 +06:00
Nikolay Kim
512dd2be63 disable rustls support 2019-11-22 07:01:05 +06:00
Nikolay Kim
8683ba8bb0 rename .to_async() to .to() 2019-11-21 21:36:35 +06:00
Nikolay Kim
69cadcdedb migrate actix-files 2019-11-21 16:02:17 +06:00
Nikolay Kim
3127dd4db6 migrate actix-web to std::future 2019-11-21 16:02:17 +06:00
Nikolay Kim
d081e57316 fix h2 client send body 2019-11-21 16:02:17 +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
5ab29b2e62 migrate awc and test-server to std::future 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
Nikolay Kim
885ff7396e prepare actox-http release 2019-11-06 10:35:13 -08:00
Hung-I Wang
edcde67076 Fix escaping/encoding problems in Content-Disposition header ()
* Fix filename encoding in Content-Disposition of acitx_files::NamedFile

* Add more comments on how to use Content-Disposition header properly & Fix some trivial problems

* Improve Content-Disposition filename(*) parameters of actix_files::NamedFile

* Tweak Content-Disposition parse to accept empty param value in quoted-string

* Fix typos in comments in .../content_disposition.rs (pointed out by @JohnTitor)

* Update CHANGES.md

* Update CHANGES.md again
2019-11-06 06:08:37 -08:00
MaySantucci
effa96f5e4 Removed httpcode 'MovedPermanenty'. () 2019-10-12 06:45:12 +06:00
Nathan
cc0b4be5b7 Fix typo in response.rs body() comment ()
Fixes https://github.com/actix/actix-web/issues/1125
2019-10-09 19:11:55 +06:00
SuperHacker-liuan
f089cf185b Let ResponseError render w/ 'text/plain; charset=utf-8' header () ()
* Let ResponseError render w/ 'text/plain; charset=utf-8' header ()

Trait ResponseError originally render Error messages with header
`text/plain` , which causes browsers (i.e. Firefox 70.0) with
Non-English locale unable to render UTF-8 responses with non-English
characters correctly. i.e. emoji.

This fix solved this problem by specifying the charset of `text/plain`
as utf-8, which is the default charset in rust.

Before actix-web consider to support other charsets, this hotfix is
 enough.

Test case:

fn test() -> Result<String, actix_web::Error> {
    Err(actix_web::error::ErrorForbidden("😋test"))
}

* Update actix-http/CHANGES.md for 
2019-10-07 10:56:24 +06:00
Zac Pullar-Strecker
fba31d4e0a Expose ContentDisposition in actix-multipart to fix broken doc link ()
* Expose ContentDisposition in actix-multipart to fix broken doc link

* Revert "Expose ContentDisposition in actix-multipart to fix broken doc link"

This reverts commit e90d71d16c.

* Unhide actix-http::header::common docs

These types are used in other exported documented interfaces and create
broken links if not documented.
See `actix_multipart::Field.content_disposition`
2019-10-02 09:48:25 +06:00
Nikolay Kim
5169d306ae update ConnectionInfo.remote() doc string 2019-09-27 07:03:12 +06:00
Nikolay Kim
d9af8f66ba Use actix-testing for testing utils 2019-09-25 10:28:41 +06:00
Sarfaraz Nawaz
aa39b8ca6f Add support for serde_json::Value to be passed as argument to ResponseBuilder.body() ()
* Add support for serde_json::Value to be passed as argument to ResponseBuilder.body()

* Update actix-http/CHANGES.md
2019-09-25 09:33:52 +06:00
nWacky
7c9f9afc46 Add ability to use Infallible as HttpResponse error type ()
* Add `std::convert::Infallible` implementantion for `ResponseError`

* Add from `std::convert::Infallible` to `Error`

* Remove `ResponseError` implementantion for `Infallible`

* Remove useless docs

* Better comment

* Update changelog

* Update actix_http::changelog
2019-09-17 06:57:38 +06:00
Yuki Okushi
c1f99e0775
Remove mem::uninitialized() () 2019-09-16 07:52:23 +09:00
Nikolay Kim
a32573bb58 Allow to re-construct ServiceRequest from HttpRequest and Payload 2019-09-13 11:56:24 +06:00
Nikolay Kim
60b7aebd0a fmt & clippy 2019-09-12 21:52:46 +06:00
Nikolay Kim
043f763c51 prepare actix-http release 2019-09-11 20:07:39 +06:00
Dmitry Pypin
8873e9b39e Added FrozenClientRequest for easier retrying HTTP calls ()
* 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
Ronald Chan
5e8f1c338c fix h2 not using error response ()
* fix h2 not using error response

* add fix change log

* fix h2 service error tests
2019-09-09 16:24:57 +06:00
Nikolay Kim
c9400456f6 update actix-connect ver 2019-09-02 15:20:28 -07:00
Nikolay Kim
63ddd30ee4 on_connect result isnt added to request extensions for http2 requests 2019-09-01 13:15:02 +06:00
Yuki Okushi
23d768a77b
Add explicit dyns ()
* Add explicit `dyn`s

* Remove unnecessary lines
2019-08-17 02:45:44 +09:00
Nikolay Kim
55179d6ab2 update dependencies 2019-08-13 10:48:11 -07:00
Armin Ronacher
192dfff680 prepare actix-http 0.2.9 release 2019-08-13 15:20:29 +02:00
Armin Ronacher
915010e733
Fixes a bug in OpenWaitingConnection where the h2 flow would panic a future () 2019-08-13 14:55:04 +02:00
Lukas Lueg
b70de5b991 Update CHANGES.md 2019-08-07 16:43:03 +02:00
Lukas Lueg
0b9e692298 Remove byteorder-dependency 2019-08-06 18:32:36 +02:00
Nikolay Kim
cf1a60cb3a prepare awc release 2019-08-01 15:41:14 -07:00
Nikolay Kim
0d15861e23 prepare actix-http release 2019-08-01 15:26:30 -07: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
e9b4aa205f Merge branch 'master' of github.com:actix/actix-web 2019-07-30 08:00:57 -07:00
Nikolay Kim
7674f1173c fix awc client panic 2019-07-30 08:00:46 -07:00
Sven-Hendrik Haase
511026cab0 Allow HeaderMap to be cloned ()
* Allow HeaderMap to be cloned

* Add entry to changelog
2019-07-29 08:11:23 +04:00
Sven-Hendrik Haase
81ab37f235 Fix two dyn warnings () 2019-07-29 08:10:33 +04:00
Nikolay Kim
f3751d83f8 Modify response body only if encoder is not None 2019-07-22 11:35:00 +06:00
Nikolay Kim
b6ff786ed3 update dependencies 2019-07-18 17:50:10 +06:00
Nikolay Kim
9c3789cbd0 revert DateServiceInner changes 2019-07-18 17:37:41 +06:00
Armin Ronacher
29098f8397 Add support for downcasting response errors ()
* Add support for downcasting response errors

* Added test for error casting
2019-07-18 17:25:50 +06:00
Rotem Yaari
d03296237e Log error results in Logger middleware (closes ) ()
* Log error results in Logger middleware (closes )

* Log internal server errors with an ERROR log level

* Logger middleware: don't log 500 internal server errors, as Actix now logs them always

* Changelog
2019-07-18 14:31:18 +06:00
Aaron Hill
b36fdc46db Remove several usages of 'unsafe' ()
* Replace UnsafeCell in DateServiceInner with Cell

The previous API was extremely dangerous - calling `get_ref()`
followed by `reset()` would trigger instant UB, without requiring
any `unsafe` blocks in the caller.

By making DateInner `Copy`, we can use a normal `Cell` instead
of an `UnsafeCell`. This makes it impossible to cause UB (or even panic)
with the API.

* Split unsafe block HttpServiceHandlerResponse

Also add explanation of the safety of the usage of `unsafe`

* Replace UnsafeCell with RefCell in PayloadRef

This ensures that a mistake in the usage of 'get_mut' will cause
a panic, not undefined behavior.
2019-07-18 04:45:17 +06:00
Nikolay Kim
2a2d7f5768 nightly clippy warnings 2019-07-17 15:53:51 +06:00
Nikolay Kim
ef3e1037a8 bump version 2019-07-17 14:18:26 +06:00
Nikolay Kim
baaa7b3fbb Replace ClonableService with local copy 2019-07-17 13:55:44 +06:00
Nikolay Kim
7b1dcaffda cleanup deprecation warning for Box<dyn> 2019-07-17 11:44:39 +06:00
Jeff Muizelaar
e1fcd203f8 Update the copyless version to 0.1.4 ()
< 0.1.4 failed to check for null when doing allocations which could lead to null dereferences.
2019-07-08 15:48:20 +06:00
messense
dbab55dd6b Bump rand crate version to 0.7 () 2019-07-01 09:37:03 +06:00
Nikolay Kim
d286ccb4f5 Add on-connect callback 2019-06-28 14:34:26 +06:00
Nikolay Kim
cac162aed7 update actix-http changes 2019-06-28 12:34:43 +06:00
anthonyjchriste
768859513a Expose the max limit for payload sizes in Websocket Actors. ()
* Expose the max limit for payload sizes in Websocket Actors.

* Revert to previous not-formatted code.

* Implement WebsocketContext::with_codec and make Codec Copy and Clone.

* Fix formatting.

* Fix formatting.
2019-06-28 10:49:03 +06:00
Tim Visée
1a24ff8717 Add builder function for HTTP 429 Too Many Requests status () 2019-06-21 13:06:29 +06:00
messense
313ac48765 Use encoding_rs crate instead of unmaintained encoding crate ()
* Use encoding_rs crate instead of unmaintained encoding crate

* Update changelog
2019-06-18 12:43:25 +06:00
Nikolay Kim
d2b6502c7a prepare actix-http release 2019-06-16 21:59:22 +06:00
Nikolay Kim
7c0f570845 Do not compress NoContent (204) responses 2019-06-16 21:54:17 +06:00
Nikolay Kim
a548b69679 fmt 2019-06-05 08:43:13 +06:00
Nikolay Kim
b1cfbdcf7a prepare actix-http release 2019-06-02 13:05:22 +06:00
Nikolay Kim
666756bfbe body helpers 2019-06-01 17:57:25 +06:00
Nikolay Kim
c2d7db7e06 prepare actix-web-actors release 2019-05-29 16:22:57 -07:00
Nikolay Kim
21418c7414 prep actix-http release 2019-05-29 16:15:12 -07:00
Nicolas Gotchac
a614be7cb5 Don't DISCONNECT from stream when reader is empty ()
* 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
1eb89b8375 remove debug prints 2019-05-25 03:16:53 -07: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
e9cbcbaf03 update dependencies 2019-05-12 10:18:02 -07:00
Nikolay Kim
beae9ca0f7 update changes 2019-05-12 09:57:16 -07:00
Nikolay Kim
07b9707ca1 prepare actix-http release 2019-05-12 09:56:55 -07:00
Nikolay Kim
df08baf67f update actix-net dependencies 2019-05-12 08:34:51 -07:00
Nikolay Kim
3d1af19080 prepare actix-http release 2019-05-04 19:51:13 -07:00
Nikolay Kim
fc19ce41c4 Clean up response extensions in response pool 2019-05-03 15:26:34 -07:00
Otavio Salvador
6e00eef63a awc: Fix typo on ResponseError documentation ()
* awc: Fix typo on ResponseError documentation

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>

* http: Fix typo on ResponseError documentation

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>

* http: Expand type names for openssl related errors documentation

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2019-05-03 14:30:00 -07:00
Nikolay Kim
f27beab016 fix case for transfer-encoding header name 2019-05-02 09:30:00 -07:00
Nikolay Kim
2bc937f6c3 prepare release 2019-04-24 12:50:44 -07:00
Nikolay Kim
f429d3319f Read until eof for http/1.0 responses 2019-04-24 11:57:40 -07:00
Nikolay Kim
2e19f572ee add tests for camel case headers rendering 2019-04-24 11:27:57 -07:00
Peter Ding
64f603b076 Support to set header names of ClientRequest as Camel-Case ()
* Support to set header names of `ClientRequest` as Camel-Case

This is the case for supporting to request for servers which don't
perfectly implement the `RFC 7230`. It is important for an app
which uses `ClientRequest` as core part.

* Add field `upper_camel_case_headers` to `ClientRequest`.

* Add function `set_upper_camel_case_headers` to `ClientRequest`
  and `ClientRequestBuilder` to set field `upper_camel_case_headers`.

* Add trait `client::writer::UpperCamelCaseHeader` for
  `http::header::HeaderName`, let it can be converted to Camel-Case
  then writed to buffer.

* Add test `test_client::test_upper_camel_case_headers`.

* Support upper Camel-Case headers

* [actix-http] Add field `upper_camel_case_headers` for `RequestHead`
* [actix-http] Add code for `MessageType` to support upper camel case
* [awc] Add functions for `ClientRequest` to set upper camel case

* Use `Flags::CAMEL_CASE` for upper camel case of headers
2019-04-24 10:48:49 -07:00
Nikolay Kim
9702b2d88e add client h2 reuse test 2019-04-23 15:06:30 -07:00
Nikolay Kim
d2b0afd859 Fix http client pool and wait queue management 2019-04-23 14:57:03 -07:00
Nikolay Kim
5f6a1a8249 update version 2019-04-23 09:45:39 -07:00
Nikolay Kim
5d531989e7 Fix BorrowMutError panic in client connector 2019-04-23 09:42:19 -07:00
Nikolay Kim
5e4e95fb0a update create version 2019-04-19 18:13:05 -07:00
Nikolay Kim
9f421b81b8 fix non-ssl connector 2019-04-19 18:10:53 -07:00
Nikolay Kim
fc9b14a933 allow to specify server address for http and ws requests 2019-04-19 18:03:44 -07:00
Nikolay Kim
7292d0b696 drop chrono and use i64 for max age 2019-04-19 17:23:17 -07:00
Kilerd Chan
791f22bbc8 replate time::Duration with chrono::Duration and add max_age_time method ()
* feat: replate time::Duration with chrono::Duration

* feat: rename max_age method which accepts `Duration` to max_age_time and add new max_age method accepting isize of seconds

* feat: replace `time:Duration` with `chrono:Duration` in repo `actix-http`
2019-04-19 13:54:44 -07:00
Nikolay Kim
163ca89cf4 more tests 2019-04-17 17:48:25 -07:00
Nikolay Kim
c943e95812 update dependencies 2019-04-16 11:17:29 -07:00
Nikolay Kim
2986077a28 no need for feature 2019-04-16 10:32:48 -07:00
Nikolay Kim
3744957804 actix_http::encoding always available 2019-04-16 10:27:58 -07:00
Nikolay Kim
eb4f6b74fb Merge branch 'master' of github.com:actix/actix-web 2019-04-16 09:58:07 -07:00
Nikolay Kim
a116c4c2c7 Expose peer addr via Request::peer_addr() and RequestHead::peer_addr 2019-04-16 09:54:02 -07:00
Travis Harmon
7f674febb1 add 422 to httpcodes.rs () 2019-04-15 16:55:06 -07:00
Nikolay Kim
1eebd47072 fix warnings 2019-04-14 21:00:16 -07:00
Nikolay Kim
002c41a7ca update trust-dns 2019-04-14 20:45:44 -07:00
Nikolay Kim
4f30fa9d46 Remove generic type for request payload, always use default 2019-04-13 14:50:54 -07:00
Nikolay Kim
1f2b15397d prepare alpha5 release 2019-04-12 14:00:45 -07:00
Nikolay Kim
87167f6581 update actix-connect 2019-04-12 12:33:11 -07:00
Nikolay Kim
94d7a7f873 custom future for SendError service 2019-04-11 15:12:23 -07:00
Nikolay Kim
d86567fbdc revert SendResponse::Error type 2019-04-11 14:18:58 -07:00
Nikolay Kim
d115b3b3ed ws verifyciation takes RequestHead; add SendError utility service 2019-04-11 14:00:32 -07:00
Nikolay Kim
e55be4dba6 add FramedRequest helper methods 2019-04-10 19:57:34 -07:00
Nikolay Kim
12e1dad42e export TestBuffer 2019-04-10 19:43:09 -07:00
Nikolay Kim
9d82d4dfb9 Fix body propagation in Response::from_error. 2019-04-10 12:43:31 -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
9c9940d88d update readme 2019-04-08 17:53:19 -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
b921abf18f set host header for http1 connections 2019-04-08 12:48:26 -07:00
Nikolay Kim
bc58dbb2f5 add async expect service test 2019-04-08 11:19:56 -07:00
Nikolay Kim
b1547bbbb6 do not set default headers 2019-04-08 11:09:57 -07:00
Nikolay Kim
a7fdac1043 fix expect service registration and tests 2019-04-08 10:31:29 -07:00
Nikolay Kim
53da55aa3c alpha4 release 2019-04-07 23:42:05 -07:00
Nikolay Kim
aa78565453 use objects pool for HttpRequest; optimize nested services call 2019-04-07 23:06:21 -07:00
Nikolay Kim
3c650ca194 remove buffer capacity for payload 2019-04-07 10:40:45 -07:00
Nikolay Kim
219baf3323 remove PayloadWriter trait 2019-04-07 10:29:26 -07:00
Nikolay Kim
ec09d6fbe6 optimize encode headers and body split 2019-04-07 10:03:38 -07:00
Nikolay Kim
748289f0ff use custom headers map; more optimizations 2019-04-06 15:02:02 -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
02fcaca3da add backward compatibility 2019-04-05 11:36:26 -07:00
Darin
18593d8476 updated Connector docs and renamed service() to finish() ()
* added Connector to actix-web::client namespace

* updated Connector, renaming service() to finish() and adding docs

* added doc for finish method on Connector
2019-04-05 11:34:27 -07:00
Nikolay Kim
b6dacaa23a remove SendError and SendResponse services 2019-04-05 11:29:42 -07:00
Nikolay Kim
f89321fd01 fix import 2019-04-05 10:50:11 -07:00
Nikolay Kim
0d4a8e1b1c update actix-connect 2019-04-05 10:35:14 -07:00
nasa
a655bdac52 Fix clippy warning () 2019-04-05 12:34:24 +03:00
Nikolay Kim
309c480782 encoder sent uncompressed data before compressed 2019-04-04 15:03:40 -07:00
Nikolay Kim
1f5c0f50f9 Add minimal std::error::Error impl for Error 2019-04-04 13:23:38 -07:00
Nikolay Kim
d8bc66a18e Use thread pool for response body comression 2019-04-04 13:17:55 -07:00
Nikolay Kim
bc834f6a03 remove some static contraints 2019-04-04 10:59:34 -07:00
Nikolay Kim
1e2bd68e83 Render error and return as response body 2019-04-03 19:55:19 -07:00
Nikolay Kim
954fe21751 set response error body 2019-04-03 19:07:25 -07:00
Nikolay Kim
dfa0abf5a5 Export IntoHeaderValue 2019-04-03 12:44:47 -07:00
Nikolay Kim
e738361e09 move multipart support to separate crate 2019-04-03 12:28:58 -07:00
Nikolay Kim
f56072954b remove PayloadBuffer 2019-04-03 03:20:20 -07:00
Nikolay Kim
442f5057dd alpha.3 release 2019-04-02 21:49:31 -07:00
Nikolay Kim
51d5006ccf Detect socket disconnection during protocol selection 2019-04-02 20:50:25 -07:00
Nikolay Kim
4227cddd30 fix dev dependencies 2019-04-02 15:00:10 -07:00
Nikolay Kim
db1f7651a3 more patch cratesio 2019-04-02 14:47:59 -07:00
Nikolay Kim
bca31eb7ad remove Deref 2019-04-02 13:35:01 -07:00
Nikolay Kim
49a499ce74 properly allocate read buffer 2019-04-02 11:11:32 -07:00
Nikolay Kim
c27fbdc35f Preallocate read buffer for h1 codec, 2019-04-02 10:19:56 -07:00
Nikolay Kim
96fd61f3d5 rust 1.31.0 compatibility 2019-04-01 10:26:09 -07:00
Nikolay Kim
e4b3f79458 allocate enough space 2019-03-31 17:05:02 -07:00
Nikolay Kim
ce8294740e fix tests with disabled features 2019-03-31 17:04:34 -07:00
Llaurence
ddf5089bff Warn when an unsealed private cookie isn't valid UTF-8 () 2019-03-31 16:26:56 +03:00
Nikolay Kim
a20b9fd354 prepare aplha2 release 2019-03-29 22:06:14 -07:00
Nikolay Kim
d846328f36 fork cookie crate 2019-03-29 21:13:39 -07:00
Nikolay Kim
193f8fb2d9 update tests 2019-03-29 18:51:07 -07:00
Nikolay Kim
3a954298d7 Merge branch 'master' of github.com:actix/actix-web 2019-03-29 18:23:07 -07:00
Nikolay Kim
3220777ff9 Added ws::Message::Nop, no-op websockets message 2019-03-29 18:22:49 -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
19a0b8046b remove actix reference 2019-03-29 11:13:36 -07:00
Nikolay Kim
1e7096a63a add request timeout 2019-03-28 22:33:41 -07:00
Nikolay Kim
3b897da8e2 Do not use thread pool for decomression if chunk size is smaller than 2048 2019-03-28 21:15:26 -07:00
Nikolay Kim
a2c9ff3a33 back to development 2019-03-28 14:10:03 -07:00
Nikolay Kim
9c198a0d29 alpha.1 release 2019-03-28 13:46:26 -07:00
Nikolay Kim
9cca86e60d prepear actix-http release 2019-03-28 12:45:41 -07:00
Nikolay Kim
5795850bbb decompress payload in cpu threadpool 2019-03-28 11:08:24 -07:00
Nikolay Kim
e84c95968f reuse PayloadBuffer from actix-http 2019-03-28 05:34:33 -07:00
Nikolay Kim
4309d9b88c port multipart support 2019-03-28 05:04:39 -07:00
Nikolay Kim
c59937784e add client websockets support 2019-03-27 18:53:19 -07:00
Nikolay Kim
e254fe4f9c allow to override response body encoding 2019-03-27 11:29:31 -07:00
Nikolay Kim
3edc515bac refactor RequestHead/ResponseHead 2019-03-27 10:38:01 -07:00
Nikolay Kim
fb9c94c3e0 remove Backtrace from error 2019-03-27 09:31:07 -07:00
Nikolay Kim
faa3ea8e5b rename BodyLength to BodySize 2019-03-27 09:24:55 -07:00
Nikolay Kim
d49a8ba53b add client TestResponse 2019-03-26 21:57:04 -07:00
Nikolay Kim
1cca25c276 add client decompression support 2019-03-26 20:45:00 -07:00
Nikolay Kim
2629699b62 rename flate2-c feature to flate2-zlib 2019-03-26 18:46:06 -07:00
Nikolay Kim
1904b01fc0 add content-encoding decompression 2019-03-26 15:14:32 -07:00
Nikolay Kim
9451ba71f4 update cargo files 2019-03-26 12:50:51 -07:00
Nikolay Kim
50c0ddb3cd update tests 2019-03-26 12:31:51 -07:00
Nikolay Kim
c7ad677804 Merge actix-http project 2019-03-26 11:54:35 -07:00