1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-07-01 19:47:18 +00:00
Commit graph

320 commits

Author SHA1 Message Date
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
Andrii Radyk 30dcaf9da0 fix deprecated Error::description (#1218) 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 (#1209) 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 (#1204)
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 #1049 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. (#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 0ba125444a Add impl ResponseBuilder for Error 2019-12-07 21:41:34 +06:00
daxpedda 4921243add Fix rustls build. (#1195) 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 (#1151)
* 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'. (#1128) 2019-10-12 06:45:12 +06:00
Nathan cc0b4be5b7 Fix typo in response.rs body() comment (#1126)
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 (#1118) (#1119)
* Let ResponseError render w/ 'text/plain; charset=utf-8' header (#1118)

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 #1118
2019-10-07 10:56:24 +06:00
Zac Pullar-Strecker fba31d4e0a Expose ContentDisposition in actix-multipart to fix broken doc link (#1114)
* 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() (#1096)
* 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 (#1093)
* 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() (#1090) 2019-09-16 07:52:23 +09:00
Nikolay Kim a32573bb58 Allow to re-construct ServiceRequest from HttpRequest and Payload #1088 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 (#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
Ronald Chan 5e8f1c338c fix h2 not using error response (#1080)
* 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 #1009 2019-09-01 13:15:02 +06:00
Yuki Okushi 23d768a77b
Add explicit dyns (#1041)
* 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 (#1031) 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 (#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 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 #1016 2019-07-30 08:00:46 -07:00
Sven-Hendrik Haase 511026cab0 Allow HeaderMap to be cloned (#1014)
* 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 (#1015) 2019-07-29 08:10:33 +04:00
Nikolay Kim f3751d83f8 Modify response body only if encoder is not None #997 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 (#986)
* 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 #938) (#984)
* Log error results in Logger middleware (closes #938)

* 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' (#968)
* 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 (#956)
< 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 (#951) 2019-07-01 09:37:03 +06:00
Nikolay Kim d286ccb4f5 Add on-connect callback #946 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. #925 (#933)
* 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 (#931) 2019-06-21 13:06:29 +06:00
messense 313ac48765 Use encoding_rs crate instead of unmaintained encoding crate (#922)
* 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 #918 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 (#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 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 #817 2019-05-03 15:26:34 -07:00
Otavio Salvador 6e00eef63a awc: Fix typo on ResponseError documentation (#815)
* 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 #771 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 (#713)
* 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 #793 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 (#789)
* 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 (#782) 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. #760 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