Commit Graph

18 Commits

Author SHA1 Message Date
Alexander Larsson 6a672c9097 actix-multipart: Fix multipart boundary reading (#1189)
* actix-multipart: Fix multipart boundary reading

If we're not ready to read the first line after the multipart field
(which should be a "\r\n" line) then return NotReady instead of Ready(None)
so that we will get called again to read that line.

Without this I was getting MultipartError::Boundary from read_boundary()
because it got the "\r\n" line instead of the boundary.

* actix-multipart: Test handling of NotReady

Use a stream that reports NoReady and does partial reads in the test_stream
test. This works now, but failed before the previous commit.
2019-12-07 19:58:38 +06:00
Nikolay Kim 60b7aebd0a fmt & clippy 2019-09-12 21:52:46 +06:00
Jeffrey Shen 1d96ae9bc3 actix-multipart: Correctly parse multipart body which does not end in CRLF (#1042)
* Correctly parse multipart body which does not end in CRLF

* Add in an eof guard for extra safety
2019-09-09 13:58:00 +06:00
Nikolay Kim fbdda8acb1 Unix domain sockets (HttpServer::bind_uds) #92 2019-07-18 17:24:12 +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 4092c7f326 clippy warnings 2019-07-17 15:08:30 +06:00
Nikolay Kim 24180f9014 Fix boundary parsing #876 2019-06-02 12:58:37 +06:00
Nikolay Kim aa626a1e72 handle disconnects 2019-05-25 03:16:46 -07:00
Nikolay Kim 2350a2dc68 Handle cancellation of uploads #834 #736 2019-05-12 11:43:05 -07:00
Nikolay Kim d00c9bb844 do not consume boundary 2019-04-21 16:14:09 -07:00
Nikolay Kim 895e409d57 Optimize multipart handling #634, #769 2019-04-21 15:41:01 -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 043f6e77ae remove nested multipart support 2019-04-13 10:11:07 -07:00
Nikolay Kim 75b213a6f0 refactor FromRequest trait 2019-04-07 14:43:07 -07:00
Nikolay Kim 219baf3323 remove PayloadWriter trait 2019-04-07 10:29:26 -07:00
Nikolay Kim 748289f0ff use custom headers map; more optimizations 2019-04-06 15:02:02 -07:00
Nikolay Kim e738361e09 move multipart support to separate crate 2019-04-03 12:28:58 -07:00