Erik Dubbelboer
15dbe35bb5
Timing fixes ( #564 )
...
- Improved timing code to be much cleaner
- Add IdleTimeout
- Remove obsolete optimization (was fixed in Go 2 years ago: https://github.com/golang/go/issues/15133#issuecomment-271571395 )
2019-04-29 16:12:47 +03:00
Tiago Peczenyj
0558e349d7
fix context Err() issue ( #544 )
...
* fix context Err() issue
Co-Authored-By: peczenyj <tiago.peczenyj@gmail.com >
2019-02-16 10:53:21 +00:00
Erik Dubbelboer
51532b9517
Shutdown close channel returned by RequestCtx.Done
...
RequestCtx.Done() now returns a channel that will be closed when
Server.Shutdown() is called.
2019-02-02 12:23:32 +01:00
Erik Dubbelboer
9793e28938
Add test for ConnState
2019-01-03 22:23:27 +01:00
Erik Dubbelboer
efe4585c98
Make RequestCtx implement context.Context
...
fixes #459
2018-11-16 00:22:29 +08:00
Berezhnoy Pavel
e771b6fe43
#457 : allow to rewrite system error response ( #458 )
...
* #457 : allow to rewrite system error response
* #457 : review fixes
* #457 : more review issues fixed
2018-11-13 15:41:42 +03:00
Erik Dubbelboer
573be81328
Hopefully fix TestShutdownReuse flakiness
2018-10-14 10:18:21 +02:00
David Byttow
da9ba61e3b
Allows for empty content type by default. Fixes #214
2018-09-19 01:28:32 +03:00
Erik Dubbelboer
761869f3f8
Close the file before trying to rename in SaveMultipartFile
...
On Windows systems it is not possible to rename files that are opened.
2018-09-13 12:39:45 +08:00
Erik Dubbelboer
c6fd90e432
Don't suppresses TLS related errors
...
See https://github.com/valyala/fasthttp/issues/300
2018-09-05 20:07:23 +03:00
Erik Dubbelboer
5b46f8ddc5
Added support for multiple TLS domains
...
See: https://github.com/erikdubbelboer/fasthttp/pull/24
2018-08-25 20:11:58 +03:00
Erik Dubbelboer
9b72466ae0
Stop random TestServerErrSmallBuffer failures
...
TestServerErrSmallBuffer had a small race condition where the test would
checkout the output of the logger after the client connection had been
served but before the worker had written the result to the logger.
This new code is also much faster as it doesn't actually use TCP but
just some in memory buffers.
2018-08-25 16:57:27 +03:00
Erik Dubbelboer
d84d8ea604
Allow removal of the Server header in responses
...
his PR adds an option to the Server called `NoDefaultServerHeader` that
allows a user to indicate that neither the Server's `Name` field nor
the `defaultServerName` should be included in the Server's responses
as a `Server` header by default.
Now when `ResponseHeader.AppendBytes` is found to have an empty `server`
field, it simply skips the `Server` header. Previously that method
would write the `defaultServerName` when no value was found. The only
code paths that took advantage of that were ones originating from
`writeErrorResponse`, which now handles setting the server name
directly.
Fixes: https://github.com/valyala/fasthttp/issues/221
2018-08-25 16:00:48 +03:00
Erik Dubbelboer
e3d61d58fd
Add Server.Shutdown
2018-08-25 01:39:00 +03:00
Erik Dubbelboer
cf6f6e7fca
Read GET/HEAD body if it exists
...
Previously, GET/HEAD bodies were not read. The HTTP 1.1 specification
states:
"A server SHOULD read and forward a message-body on any request; if the
request method does not include defined semantics for an entity-body,
then the message-body SHOULD be ignored when handling the request.
I suspect this code is at fault."
This change reads the body on such request and continues the previous
behavior of returning a "Content-Length" of 0 to the application.
See: https://github.com/valyala/fasthttp/issues/159
2018-08-24 16:21:17 +03:00
Aliaksandr Valialkin
70ceaddfae
Added RequestCtx.String that returns unique string representation of the request context
2017-10-18 15:53:05 +03:00
Aliaksandr Valialkin
103adc311e
Do not compress responses with sizes smaller than 200 bytes
...
Compressing small bodies has little sense, since the compressed result size
may exceed the original body size.
This should save CPU time when the server responds with small responses.
2017-05-17 16:17:53 +03:00
Aliaksandr Valialkin
b0de56d13b
Properly set "https" scheme in RequestCtx.URI() for TLS connections
2017-01-15 00:26:21 +02:00
Aliaksandr Valialkin
21021ceb31
Added a test for redirecting from https to schemeless url
2017-01-14 23:40:56 +02:00
Aliaksandr Valialkin
1913bdea45
Set 'Connection: close' response header when server couldn't parse or accept incoming request
2016-11-17 13:50:15 +02:00
Aliaksandr Valialkin
e0618f8ef5
an attempt to localize travis failure on TestServerErrSmallBuffer
2016-11-14 22:56:00 +02:00
Aliaksandr Valialkin
78e415082d
an attempt to fix travis build
2016-11-14 22:40:43 +02:00
Aliaksandr Valialkin
02fe9b8533
Issue #173 : return valid response instead of silently closing connection on request parsing errors
2016-11-10 18:09:23 +02:00
Aliaksandr Valialkin
935c556b36
Added RequestCtx.Hijacked method for determining whether the underlying connection is hijacked
2016-10-21 14:33:22 +03:00
Aliaksandr Valialkin
e0c9f3d5ff
typo fixes in comments
2016-10-13 17:39:06 +03:00
Aliaksandr Valialkin
2662f2e1f4
Allow redirecting to urls without scheme, i.e. //google.com/foo.bar
2016-08-17 18:55:32 +03:00
Aliaksandr Valialkin
5210f60181
Detect overriden TLS connections in RequestCtx.IsTLS and RequestCtx.TLSConnectionState
2016-08-17 18:01:59 +03:00
Gerasimos Maropoulos
006fac3cba
Implement VisitUserValues - https://github.com/valyala/fasthttp/issues/126 ( #129 )
2016-07-12 09:40:24 +03:00
Aliaksandr Valialkin
d42167fd04
Set response Server header to Server.Name if it is empty. This properly handles #118
2016-06-17 13:13:04 +03:00
Aliaksandr Valialkin
efbb037c40
Added RequestCtx.Redirect tests, which cover cases mentioned in https://github.com/kataras/iris/issues/173
2016-06-07 13:30:42 +03:00
Aliaksandr Valialkin
3c5ba2c98d
Limit the number of concurrently running request handlers inside TimeoutHandler
2016-06-06 16:47:02 +03:00
Aliaksandr Valialkin
b8b31526d7
Do not compress already compressed response in CompressHandler
2016-06-06 14:15:34 +03:00
Aliaksandr Valialkin
90baa054bc
Export IsBodyStream on RequestCtx, Request and Response
...
These methods may help writing proper request handler wrappers
for request handlers, which may set body either via SetBodyStream*
or via usual body methods.
2016-06-03 17:07:13 +03:00
Aliaksandr Valialkin
f68634569e
Issue #103 : Set 'Server' response header before calling user-provided request handler
2016-05-24 15:41:08 +03:00
Aliaksandr Valialkin
57d56c2d34
Fixed flacky TestServerResponseBodyStream
2016-05-24 15:27:30 +03:00
Aliaksandr Valialkin
2d5c6fd01a
Added Server.ConnID() for associating distinct requests that come from the same client connection
2016-04-24 22:01:13 +03:00
Aliaksandr Valialkin
c9c8d72607
Issue #78 : immediately flush chunked data to client
2016-04-15 23:14:38 +03:00
Aliaksandr Valialkin
8d147e45af
Issue #76 : fixed data races in TimeoutHandler and RequestCtx.TimeoutError*. Updated tests for catching similar data races in the future
2016-04-06 15:08:34 +03:00
Aliaksandr Valialkin
9f20a62336
added workerpool tests
2016-03-31 14:41:27 +03:00
Aliaksandr Valialkin
7d29fb3b3d
server: added DisableKeepalive option for disabling keep-alive connections
2016-03-31 10:05:31 +03:00
Aliaksandr Valialkin
d444ab9169
Server: write error response when concurrency limit or per-ip conn limit is exceeded before closing the connection. This should improve server diagnostics
2016-03-28 18:42:40 +03:00
Aliaksandr Valialkin
0a85495ae0
Validate multipart form value in server test
2016-03-02 20:15:02 +02:00
Aliaksandr Valialkin
15ffe2f795
Issue #63 : added helper functions for starting https server with certificates embedded into the app
2016-03-02 15:23:21 +02:00
Aliaksandr Valialkin
877a47395f
Issue #61 : use proper content-length in multipart/form-data tests
2016-03-01 18:12:00 +02:00
Aliaksandr Valialkin
8581513fa2
Issue #61 : server: properly read multipart/form-data
2016-03-01 18:07:52 +02:00
Aliaksandr Valialkin
dd6954f4b2
Issue #57 : Server: added ability to disable header names' normalizing
2016-02-25 14:00:04 +02:00
Aliaksandr Valialkin
108d002365
Added tests for Server.ReduceMemoryUsage flag
2016-02-24 15:45:56 +02:00
Aliaksandr Valialkin
115b98672e
Make sure that the server always closes connection after HTTP/1.0 request without 'Connection: keep-alive' header
2016-02-22 23:00:36 +02:00
Aliaksandr Valialkin
b8f996c13f
Added more tests for keep-alive and non-keep-alive connections during HTTP/1.0 requests
2016-02-22 22:51:12 +02:00
Aliaksandr Valialkin
9f608dd1fd
Issue #51 : Make RequestCtx.SendFile a synonim to ServeFile. This breaks RequestCtx.SendFile API, but I believe the new behaviour of SendFile outweights API breakage
2016-02-17 11:35:36 +02:00