Commit Graph

153 Commits

Author SHA1 Message Date
Aliaksandr Valialkin 52ddf98cfd Fixed golint warnings 2016-01-19 12:43:23 +02:00
Aliaksandr Valialkin 764a74e2ec Added ServeFile and ServeFileUncompressed to be on par with net/http 2016-01-17 23:12:38 +02:00
Aliaksandr Valialkin 81b5321d14 Removed misleading ConnectionCloseReal method from RequestHeader 2016-01-17 00:43:34 +02:00
Aliaksandr Valialkin 3e5866274d use Request.ConnectionClose instead of Request.Header.ConnectionClose 2016-01-13 13:41:47 +02:00
Aliaksandr Valialkin b6594defaa Added TLSConnectionState function to RequestCtx for verifying client certificates 2016-01-11 19:05:09 +02:00
Aliaksandr Valialkin 81ebe4ca8f Return clearer error when TLS certFile and/or keyFile cannot be loaded 2016-01-08 17:40:05 +02:00
Aliaksandr Valialkin 37931cad28 Added ServeTLS helper to Server 2016-01-08 17:31:59 +02:00
Aliaksandr Valialkin 910e5a9d2a Added FormFile and FormValue helpers to RequestCtx in order to be on par with net/http 2016-01-08 15:03:02 +02:00
Aliaksandr Valialkin c5d9023043 Issue #30: properly handle content-length for HEAD responses 2016-01-05 18:02:50 +02:00
Aliaksandr Valialkin 7f5b710e05 Issue #31: do not send response body for HEAD requests 2016-01-05 16:53:38 +02:00
Aliaksandr Valialkin 5a483a7e5d Added a notice that TimeoutError* functions may be used only as a last resort 2015-12-31 10:47:40 +02:00
Aliaksandr Valialkin 95093e35cf Removed redundant Reset() calls on bufio.Reader/bufio.Writer/gzipWriter/flateWriter before returning them to the pool, since Reset() is immediately called after these instances are obtained from pool 2015-12-29 15:10:14 +02:00
Aliaksandr Valialkin c5b85a6124 Use default logger if logger passed to RequestCtx.Init() is nill 2015-12-29 11:14:47 +02:00
Aliaksandr Valialkin 3284c3e671 Pull request #24: added support for '100 Continue' responses and 'Expect: 100-continue' requests. Kudos to @celer 2015-12-25 16:11:20 +02:00
Aliaksandr Valialkin 149f0f38b7 Issue #14: added CompressHandler wrapper for transparent response compression support 2015-12-25 13:33:01 +02:00
Aliaksandr Valialkin 80105c1a85 Added RequestCtx.WriteString 2015-12-24 20:48:05 +02:00
Aliaksandr Valialkin d2db95337f Removed 'v interface{}' hack from structs managed via sync.Pool, since it has no sense 2015-12-23 11:39:40 +02:00
Aliaksandr Valialkin 5379f55d86 Pull request #21: updated docs 2015-12-20 15:51:13 +02:00
招牌疯子 abc35a8dc2 Redirect 307 instead of 302 2015-12-20 12:32:45 +08:00
Aliaksandr Valialkin 38473d3cf1 Issue #20: Added TimeoutErrorWithResponse helper function to RequestCtx 2015-12-17 12:25:53 +02:00
Aliaksandr Valialkin 3ab54e2452 Issue #20: Added TimeoutErrorWithCode helper function to RequestCtx 2015-12-16 21:13:59 +02:00
Aliaksandr Valialkin b00a213a93 Moved ctx.UserValue from standard map to custom userData. This should improve its' performance for common case when ctx contains up to 10 user values 2015-12-11 16:40:55 +02:00
Aliaksandr Valialkin 400114e9fe Added RequestCtx.NotFound() helper 2015-12-10 13:22:23 +02:00
Aliaksandr Valialkin 1f36aa1f8f clarify on why 'Connection: close' response header is set only for non-http/1.1 requests 2015-12-10 11:56:23 +02:00
Aliaksandr Valialkin 71e8c28a95 Issue #16: properly set 'Connection' response header 2015-12-10 11:47:25 +02:00
Aliaksandr Valialkin 495e130b8f Issue #16: support 'Connection: keep-alive' header for non-http/1.1 requests and/or responses 2015-12-10 11:19:34 +02:00
Aliaksandr Valialkin 9c18f79145 Added support for If-Modified-Since to SendFile and FS 2015-12-09 18:51:51 +02:00
Aliaksandr Valialkin 1a06baebe3 Refer to SetBodyStreamWriter from SetBodyStream docs 2015-12-09 16:34:50 +02:00
Aliaksandr Valialkin 52999aff94 Added SetBodyStreamWriter for streaming response body 2015-12-09 16:33:07 +02:00
Aliaksandr Valialkin 5f157c097e Added UserAgent helper to RequestCtx 2015-12-09 13:48:33 +02:00
Aliaksandr Valialkin 6ad39dad61 Added SendFile to Response 2015-12-09 13:47:11 +02:00
Aliaksandr Valialkin bc50b11813 Added AppendBody and SetBodyString helper methods to Request and Response 2015-12-09 13:43:06 +02:00
Aliaksandr Valialkin 42802cc79f Spelling fix 2015-12-08 15:21:09 +02:00
Aliaksandr Valialkin 9bac0d4123 Added RequestCtx.SendFile() 2015-12-08 15:18:21 +02:00
Aliaksandr Valialkin ff63733774 Removed LimitedReader wrapper in writeBodyFixedSize, since it prevents sendfile triggering for FSHandler 2015-12-08 11:50:04 +02:00
Aliaksandr Valialkin 019996b9ea Added ListenAndServeUNIX 2015-12-07 16:30:14 +02:00
Aliaksandr Valialkin fab86ba9b4 Mention TimeoutError exception, which may be called when other goroutines access RequestCtx 2015-12-03 13:42:08 +02:00
Aliaksandr Valialkin 4ac44f0c6c Mention which structs are safe for use from concurrently running goroutines (Server, Client and HostClient) and which structs are unsafe to use from concurrently running goroutines - all the other 2015-12-03 13:38:59 +02:00
Aliaksandr Valialkin 0b6cc4cbad Issue #13: add a (k,v) storage inside RequestCtx for user values, which may pass between middlewares 2015-12-02 20:32:49 +02:00
Aliaksandr Valialkin 1ddca5dc04 Added ResetBody 2015-12-02 08:36:31 +02:00
Aliaksandr Valialkin 07a8bf90b4 Properly remove hijack hander from RequestCtx 2015-11-29 22:36:49 +02:00
Aliaksandr Valialkin 4cf82252e3 Added ability to filter out non-GET requests 2015-11-29 12:49:01 +02:00
Aliaksandr Valialkin fb07cbbd31 Signify that Request and Response from RequestCtx and Header from Request and Response mustn't be copied by value 2015-11-29 12:18:33 +02:00
Aliaksandr Valialkin 1364e4c206 Added IsPut to RequestCtx to be consistent with IsGet and IsPost 2015-11-29 11:37:05 +02:00
Aliaksandr Valialkin d8c882d360 scalability improvement: initialize RequestCtx.id only when creating new RequestCtx obect. This should reduce globalCtxID contention 2015-11-28 17:23:53 +02:00
Aliaksandr Valialkin a5a2571194 scalability improvement: make firstByteReader's pool per-server 2015-11-28 17:14:32 +02:00
Aliaksandr Valialkin 78f1cc863a hijack scalability improvement: make hijacked conn per-server 2015-11-28 17:12:01 +02:00
Aliaksandr Valialkin 8563a2e762 Follow redirects in client Get* and Post* methods. Added Redirect method to RequestCtx. 2015-11-28 14:47:19 +02:00
Aliaksandr Valialkin d7ecf59c5d Added Request.RemoveMultipartFormFiles for removing temporary files created during reading multipart/form-data request 2015-11-28 10:32:55 +02:00
Aliaksandr Valialkin cc79b27b51 Imporoved multipart/form-data support.
* The server automatically deletes temporary uploaded files after returning
  from RequestHandler.
* Multipart data is automatically streamed into temporary files on request
  reading. This limits memory usage for big file uploads.
2015-11-28 10:18:03 +02:00