Commit Graph

878 Commits

Author SHA1 Message Date
Aliaksandr Valialkin a2cc660e59 optimization: removed slow defer from worker pool handler and hijack handler 2016-07-18 17:23:38 +03:00
Aliaksandr Valialkin 881ac52b00 Added support for multiple concurrent connections to server in PipelineClient 2016-07-16 17:36:32 +03:00
Aliaksandr Valialkin f4ebbdd48b Removed incorrect statement from PipelineClient.Do docs 2016-07-15 14:41:07 +03:00
Aliaksandr Valialkin 886e541160 Removed 'recover-from-panic' band-aids.
All the panics must be handled by the user code.
2016-07-12 12:30:38 +03:00
Aliaksandr Valialkin d1dd56c016 Issue #131: document redirects' following for client functions 2016-07-12 10:40:04 +03:00
Victor Gaydov a0fe3404bf Add test for fsSmallFileReader.WriteTo and fix bug (#128)
The bug raises when io.Writer passed to fsSmallFileReader.WriteTo
doesn't support ReadFrom interface.
2016-07-12 09:42:39 +03:00
Gerasimos Maropoulos 006fac3cba Implement VisitUserValues - https://github.com/valyala/fasthttp/issues/126 (#129) 2016-07-12 09:40:24 +03:00
Benjamin Botwin 141ac46e4c Fixed a few typos in README.md (#134) 2016-07-12 09:39:00 +03:00
Aliaksandr Valialkin 5c2b6256da A follow-up test for the PR #135 2016-07-12 09:37:39 +03:00
Clayton Anderson 1909d6a025 Fixed bug with quoted multipart form boundaries (#135) 2016-07-12 09:33:29 +03:00
Victor Gaydov 97d96cb3b7 Handle TransferEncoding in fasthttpadaptor (#124)
When incoming http.Request is constructed, "Transfer-Encoding" header
is removed, and http.Request.TransferEncoding is set instead.

This behaviour is now emulated in fasthttpadaptor.
2016-06-29 17:36:40 +03:00
Aliaksandr Valialkin e4db3cb560 Security fix: limit request body size by default
This mitigates possible DoS-attacks based on sending very BIG request bodies
to the server with default settings.
Thanks to @MichaelMonashev for pointing to this attack.
2016-06-28 20:54:42 +03:00
Aliaksandr Valialkin 778f83ed89 Discourage using ReleaseBody, since now bytebufferpool should properly handle the case mentioned in #102 2016-06-27 18:26:56 +03:00
Aliaksandr Valialkin 15c8282c3f typo fix 2016-06-27 17:52:45 +03:00
Aliaksandr Valialkin 80e08dc9ef Cross-reference Set* with Add* methods on RequestHeader and ResponseHeader 2016-06-27 17:48:32 +03:00
Justin Seely 3d3774799e Enable IPv6 for reuseport (#122) 2016-06-24 17:29:10 +03:00
Aliaksandr Valialkin efa9cb909e Issue #121: Added a test to make sure equal and space chars may be used inside cookie values 2016-06-24 17:22:27 +03:00
Aliaksandr Valialkin a35f26a704 Deprecate ByteBuffer in favor of bytebufferpool 2016-06-24 16:48:38 +03:00
Aliaksandr Valialkin 00868f2226 Use separate pools for request and response bodies.
This should reduce potential memory waste related to byte buffers' pool usage.
2016-06-24 15:15:59 +03:00
Aliaksandr Valialkin 775eb9d43f Update according to bytebufferpool new API 2016-06-24 14:59:39 +03:00
Aliaksandr Valialkin 3148999d1e Updated bytebufferpool calls according to the latest modifications 2016-06-23 11:08:30 +03:00
Aliaksandr Valialkin 8ca66d3de8 Use github.com/valyala/bytebufferpool, which should protect against memory fragmentation in the pool of byte buffers like mentioned in the PR #102 2016-06-22 20:32:00 +03:00
kayteh 29a4c4d6c1 Fix small typo in net/http -> fasthttp example (#120) 2016-06-19 00:28:03 +03:00
Aliaksandr Valialkin d42167fd04 Set response Server header to Server.Name if it is empty. This properly handles #118 v20160617 2016-06-17 13:13:04 +03:00
Aliaksandr Valialkin 83a24c301b Issue #114: added SetHost and Host helper methods to Request 2016-06-15 20:32:54 +03:00
Anton Tyurin 33ed259db7 reuseport: set FD_CLOSEEXEC for the sockets (#117)
Signed-off-by: Anton Tiurin <noxiouz@yandex.ru>
2016-06-13 18:00:33 +03:00
Alexander Shchepetilnikov e2fcfbaea5 Fix typo (#115) 2016-06-13 17:58:03 +03:00
Aliaksandr Valialkin 8db7d05839 Close base response body streams when wrapping them into gzip or deflate stream writers 2016-06-10 20:19:15 +03:00
Aliaksandr Valialkin 80af8b2b97 Simplified PipeConns - now they properly handle the case when reader side is closed 2016-06-10 19:56:11 +03:00
Aliaksandr Valialkin 7c6a3278ad Improved testPipeConnsCloseWhileReadWrite 2016-06-10 18:24:42 +03:00
Aliaksandr Valialkin 312f9e5633 move inmemory_listener_timing_test to *_test package, so it could import fasthttp without cycle 2016-06-10 17:48:06 +03:00
Aliaksandr Valialkin ce9d1d2224 Use fasthttp.PipeConns instead of io.Pipe in StreamReader
This improves StreamReader performance by more than 2x.
2016-06-10 15:31:05 +03:00
Aliaksandr Valialkin 8f05edbec9 typo fix 2016-06-08 16:03:51 +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 033bb40f06 Properly handle hashes and single dots in URI.Update (see https://github.com/kataras/iris/issues/173) 2016-06-07 13:30:03 +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 661978870b return StatusOK from an empty ResponseHeader.StatusCode() 2016-06-06 14:08:53 +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 1fc1f4cbf5 Reduce memory usage under high load by pooling request/response bodies.
- Use request/response body pools.
- Defer request/response body allocation until it is really required.
- Return request/response bodies to the pool as soon as they become unused.

This minimizes the total amount of memory occupied by active request/response
bodies under high load.
2016-06-03 16:54:22 +03:00
Aliaksandr Valialkin c09347e6de Removed coveralls.io badge, since it requires non-trivial setup to work properly 2016-06-03 14:01:30 +03:00
Hiroaki Nakamura 03bef793b7 Add missing messages to statusMessages (#109) 2016-05-30 19:12:58 +03:00
Aliaksandr Valialkin d029cfc489 Use coveralls.io badge instead of broken gocover.io 2016-05-30 18:36:54 +03:00
Tracer Tong ae8de36df0 Issue #107 (#108) 2016-05-27 18:54:11 +03:00
Aliaksandr Valialkin cefa3b1f52 Issue #105: listen by default only on IPv4, since IPv6 may be misleading / unexpected / buggy 2016-05-27 16:53:10 +03:00
Aliaksandr Valialkin bdd73c3261 small cleanup after 117f109c29 2016-05-27 16:11:29 +03:00
Aliaksandr Valialkin ccf67b7c98 Issue #107: make sure fasthttp supports arbitrary request methods including DELETE 2016-05-27 16:10:21 +03:00
Jason Fesler 117f109c29 Add func (resp *Response) ReleaseBody(size int) (#102) 2016-05-24 15:49:08 +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