aboutsummaryrefslogtreecommitdiff
path: root/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'server.go')
-rw-r--r--server.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/server.go b/server.go
index ff7df80..d4827e7 100644
--- a/server.go
+++ b/server.go
@@ -81,7 +81,10 @@ func handleConnection(conn io.ReadWriteCloser, handler Handler) {
request := Request{requestURL}
response := handler.Handle(request)
- defer response.Body.Close()
+
+ if response.Body != nil {
+ defer response.Body.Close()
+ }
err = writeResponse(conn, response)
if err != nil {
@@ -109,6 +112,10 @@ func writeResponse(conn io.Writer, response Response) error {
return fmt.Errorf("failed to write header line to the client: %v", err)
}
+ if response.Body == nil {
+ return nil
+ }
+
_, err = io.Copy(conn, response.Body)
if err != nil {
return fmt.Errorf("failed to write the response body to the client: %v", err)