Sean McArthur
d22deb6572
feat(server): add Http::max_buf_size() option
...
The internal connection's read and write bufs will be restricted from
growing bigger than the configured `max_buf_size`.
Closes #1368
2018-01-23 16:09:28 -08:00
Sean McArthur
7cb72d2019
fix(server): send 400 responses on parse errors before closing connection
2018-01-23 15:31:26 -08:00
Sean McArthur
44c34ce9ad
fix(server): error if Response code is 1xx
...
Returning a Response from a Service with a 1xx StatusCode is not
currently supported in hyper. It has always resulted in broken
semantics. This patch simply errors better.
- A Response with 1xx status is converted into a 500 response with no body.
- An error is returned from the `server::Connection` to alert about the
bad response.
2018-01-23 13:02:56 -08:00
Sean McArthur
227742221f
fix(client): error on unsupport 101 responses, ignore other 1xx codes
2018-01-23 11:33:24 -08:00
Sean McArthur
d8b1aa848c
perf(conn): use AsyncRead::read_buf to try skipping zeroing of buffer
2018-01-22 17:45:02 -08:00
Sean McArthur
be9d5e8d5c
v0.11.15
2018-01-22 12:17:33 -08:00
Sean McArthur
c93b082c85
refactor(compat): use pub(super) to remove compat_impl modules
2018-01-22 10:42:41 -08:00
Sean McArthur
36e66a5054
fix(lib): properly handle HTTP/1.0 remotes
...
- Downgrades internal semantics to HTTP/1.0 if peer sends a message with
1.0 version.
- If downgraded, chunked writers become EOF writers, with the connection
closing once the writing is complete.
- When downgraded, if keep-alive was wanted, the `Connection: keep-alive`
header is added.
Closes #1304
2018-01-22 10:08:27 -08:00
Sean McArthur
c89019eb10
feat(client): add executor method when configuring a Client
...
This allows using a future `Executor` other than a `Handle` to execute
the background (connection) tasks needed for sending requests and
responses.
This also deprecates `Client::handle()`, since the executor may not be
a `Handle`.
2018-01-19 16:58:57 -08:00
Sean McArthur
350ce542be
v0.11.14
2018-01-16 14:20:26 -08:00
Sean McArthur
14e4c741dc
fix(tokio-proto): return end-of-body frame correctly for tokio-proto
...
Closes #1414
2018-01-16 14:11:20 -08:00
Sean McArthur
00d6a38547
v0.11.13
2018-01-12 11:38:18 -08:00
Sean McArthur
7a48d0e8b4
fix(lib): properly handle body streaming errors
2018-01-11 13:58:16 -08:00
Sean McArthur
7888451408
refactor(proto): return Error::Incomplete instead of UnexpectedEof
2018-01-11 11:45:28 -08:00
Sean McArthur
30f7f1dbe6
chore(tests): fix tests when tokio-proto feature disabled
2018-01-09 18:30:10 -08:00
Sean McArthur
2fe90f2564
fix(client): change connection errors to debug log level
...
Closes #1412
2018-01-09 17:46:35 -08:00
Sean McArthur
7976023b59
fix(client): don't error on read before writing request
2018-01-09 17:46:29 -08:00
Sean McArthur
e34a32b0a0
v0.11.12
2018-01-08 10:06:19 -08:00
Sean McArthur
fa7f4377c1
fix(server): add remote_addr back to Request when using Http::bind
...
The `Request::remote_addr()` method has been deprecated.
Closes #1410
2018-01-08 10:04:01 -08:00
Sean McArthur
b3f32469b0
v0.11.11
2018-01-05 10:51:18 -08:00
Sean McArthur
34f0dba6dc
chore(log): update to log 0.4
2018-01-04 14:50:18 -08:00
Sean McArthur
6ade21aa7f
feat(server): change default dispatcher
...
- Deprecates the `no_proto` configuration on `Server`. It is always
enabled.
- Deprecates all pieces related to tokio-proto.
- Makes the tokio-proto crate optional, and the `server-proto` feature
can be used to completely remove the dependency. It is enabled by
default.
2017-12-28 19:15:57 -08:00
Sean McArthur
0892cb2777
feat(client): replace default dispatcher
2017-12-28 17:18:42 -08:00
Sean McArthur
ccd8ebff75
v0.11.10
2017-12-26 15:25:20 -08:00
Sean McArthur
bfb0f84d37
fix(client): fix panic when request body is empty string
2017-12-26 13:07:39 -08:00
Sean McArthur
7d3abfbcf3
fix(conn): don't double shutdown in some cases
2017-12-15 13:46:30 -08:00
Sean McArthur
ef4008121e
fix(client): close connections when Response Future or Body is dropped
...
Closes #1397
2017-12-14 13:57:31 -08:00
Sean McArthur
fe82cea96a
chore(lib): remove debug logs on 0 sized reads
2017-12-13 16:34:55 -08:00
Sean McArthur
139dc7ab2b
fix(client): properly close idle connections after timeout
...
Additionally fixes if there were idle connections when a `Client` is
dropped.
Only fixes with the no-proto dispatcher, as changing internals for the
tokio-proto dispatcher would be much harder, and it will replace it very
soon.
Closes #1397
2017-12-13 16:29:25 -08:00
Sean McArthur
16aa92cf03
v0.11.9
2017-12-09 19:02:12 -08:00
Sean McArthur
15fdd53d4c
fix(client): detect valid eof after reading a body
...
If a connection closes immediately after reading the end of the body,
the next call to `conn.poll()` should not error, but just indicate
that the connection is done.
Closes #1396
2017-12-08 17:29:46 -08:00
Sean McArthur
7b5931122a
feat(log): improve quality of debug level logs
2017-12-08 14:49:51 -08:00
Sean McArthur
a594341701
v0.11.8
2017-12-06 16:56:13 -08:00
Sean McArthur
214f593c2b
test(headers): fix ProxyAuthorization bench_headers error
2017-12-06 16:37:42 -08:00
Steven Fackler
c93cdb2908
feat(headers): Implement ProxyAuthorization ( #1394 )
2017-12-06 16:09:00 -08:00
Sean McArthur
95e0164e8f
fix(client): return error instead of unmatched response when idle
2017-12-06 16:06:13 -08:00
Sean McArthur
8f938d97e7
fix(conn): handle when pre-emptive flushing closes the write state
...
Closes #1391
2017-12-06 14:50:13 -08:00
Steven Fackler
eb9590e3da
feat(server): Allow keep alive to be turned off for a connection ( #1390 )
...
Closes #1365
2017-12-04 10:14:20 -08:00
Sean McArthur
cecef9d402
fix(client): remove idle connections when read eof is found
2017-11-28 17:13:54 -08:00
Sean McArthur
9f21241002
fix(client): always wait on reads for pooled connections
2017-11-28 16:17:20 -08:00
Steven Fackler
60d0eaf891
fix(server): allow TLS shutdown before dropping connections with no_proto
...
This is important for TLS connections in particular
Closes #1380
2017-11-28 15:34:30 -08:00
Steven Fackler
d2aa5d862c
fix(client): don't leak connections with no keep-alive
...
Closes #1383
2017-11-27 21:42:57 -08:00
Sean McArthur
e4864a2bea
feat(server): add to wrap generic accept steams
2017-11-15 13:39:24 -08:00
Sean McArthur
121b5eef19
fix(lib): fix no_proto dispatcher to flush queue before polling more body
2017-11-14 15:13:11 -08:00
Sean McArthur
3f62bde7b3
v0.11.7
2017-11-14 13:41:37 -08:00
Sean McArthur
8bf7964875
fix(server): GET requests with no body have None instead of Empty
...
Closes #1373
2017-11-14 11:52:29 -08:00
Sam Rijs
b1785c662b
feat(client): skip dns resolution when host is a valid ip addr ( #1372 )
2017-11-13 15:00:34 -08:00
Guillaume Gomez
e330d30964
docs(lib): fix rustdoc warnings
2017-11-10 10:22:33 -08:00
Sean McArthur
fe38aa4bc1
feat(server): add const_service and service_fn helpers
...
- `const_service` creates a `NewService` that clones references to the
wrapped service.
- `service_fn` creates a `Service` from a function. Useful with closures.
2017-11-09 16:47:35 -08:00
Sean McArthur
68e0df759a
chore(server): make AddrIncoming stream item an unnameable type
2017-11-09 16:17:02 -08:00