diff --git a/Server.go b/Server.go index f987c51..c810681 100644 --- a/Server.go +++ b/Server.go @@ -121,6 +121,7 @@ func (s *server) handleConnection(conn net.Conn) { ctx = s.contextPool.Get().(*context) method string url string + close bool ) ctx.reader.Reset(conn) @@ -128,7 +129,7 @@ func (s *server) handleConnection(conn net.Conn) { defer conn.Close() defer s.contextPool.Put(ctx) - for { + for !close { // Read the HTTP request line message, err := ctx.reader.ReadString('\n') @@ -183,6 +184,10 @@ func (s *server) handleConnection(conn net.Conn) { Key: key, Value: value, }) + + if value == "close" && strings.EqualFold(key, "connection") { + close = true + } } // Handle the request