1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-12-30 12:00:38 +00:00
Commit graph

133 commits

Author SHA1 Message Date
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