This commit is contained in:
parent
0442fc1e2e
commit
9a781d2e64
4 changed files with 28 additions and 9 deletions
11
Server.go
11
Server.go
|
@ -1,7 +1,6 @@
|
|||
package web
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"io"
|
||||
"log"
|
||||
|
@ -79,6 +78,7 @@ func (s *server) Ready() chan struct{} {
|
|||
func (s *server) Request(method string, url string, headers []Header, body io.Reader) Response {
|
||||
ctx := s.newContext()
|
||||
ctx.request.headers = headers
|
||||
ctx.request.Reader.Reset(body)
|
||||
s.handleRequest(ctx, method, url, io.Discard)
|
||||
return ctx.Response()
|
||||
}
|
||||
|
@ -133,14 +133,14 @@ func (s *server) handleConnection(conn net.Conn) {
|
|||
close bool
|
||||
)
|
||||
|
||||
ctx.reader.Reset(conn)
|
||||
ctx.Reader.Reset(conn)
|
||||
|
||||
defer conn.Close()
|
||||
defer s.contextPool.Put(ctx)
|
||||
|
||||
for !close {
|
||||
// Read the HTTP request line
|
||||
message, err := ctx.reader.ReadString('\n')
|
||||
message, err := ctx.Reader.ReadString('\n')
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -177,7 +177,7 @@ func (s *server) handleConnection(conn net.Conn) {
|
|||
|
||||
// Add headers until we meet an empty line
|
||||
for {
|
||||
message, err = ctx.reader.ReadString('\n')
|
||||
message, err = ctx.Reader.ReadString('\n')
|
||||
|
||||
if err != nil {
|
||||
return
|
||||
|
@ -215,7 +215,6 @@ func (s *server) handleConnection(conn net.Conn) {
|
|||
|
||||
// Clean up the context
|
||||
ctx.request.headers = ctx.request.headers[:0]
|
||||
ctx.request.body = ctx.request.body[:0]
|
||||
ctx.response.headers = ctx.response.headers[:0]
|
||||
ctx.response.body = ctx.response.body[:0]
|
||||
ctx.params = ctx.params[:0]
|
||||
|
@ -259,8 +258,6 @@ func (s *server) newContext() *context {
|
|||
return &context{
|
||||
server: s,
|
||||
request: request{
|
||||
reader: bufio.NewReader(nil),
|
||||
body: make([]byte, 0),
|
||||
headers: make([]Header, 0, 8),
|
||||
params: make([]router.Parameter, 0, 8),
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue