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
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
Nikolay Kim
d286ccb4f5
Add on-connect callback #946
2019-06-28 14:34:26 +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
666756bfbe
body helpers
2019-06-01 17:57:25 +06: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
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
df08baf67f
update actix-net dependencies
2019-05-12 08:34:51 -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
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
d2b0afd859
Fix http client pool and wait queue management
2019-04-23 14:57:03 -07:00
Nikolay Kim
5d531989e7
Fix BorrowMutError panic in client connector #793
2019-04-23 09:42:19 -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
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
4f30fa9d46
Remove generic type for request payload, always use default
2019-04-13 14:50:54 -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
Nikolay Kim
c22a3a71f2
fix test
2019-04-08 19:07:11 -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
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
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 #141
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() ( #757 )
...
* 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 ( #755 )
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
51d5006ccf
Detect socket disconnection during protocol selection
2019-04-02 20:50:25 -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, #749
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 ( #746 )
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
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 ( #740 )
2019-03-29 16:29:11 -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
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
c7ad677804
Merge actix-http project
2019-03-26 11:54:35 -07:00