diff --git a/basis/http/http-tests.factor b/basis/http/http-tests.factor index f161b4276f..c960a6634a 100644 --- a/basis/http/http-tests.factor +++ b/basis/http/http-tests.factor @@ -456,3 +456,14 @@ SYMBOL: a [ "OK\n\n" ] [ "http://localhost/" add-addr http-get nip ] unit-test [ ] [ stop-test-httpd ] unit-test + +! Check that just closing the socket without sending anything works +[ ] [ + + add-quit-action + test-httpd +] unit-test + +[ ] [ "addr" get binary [ ] with-client ] unit-test + +[ ] [ stop-test-httpd ] unit-test diff --git a/basis/http/server/server.factor b/basis/http/server/server.factor index 961d3d34b4..4c5b76431c 100644 --- a/basis/http/server/server.factor +++ b/basis/http/server/server.factor @@ -37,7 +37,7 @@ IN: http.server dup path>> "/" head? [ "Bad request: URL" throw ] unless ; inline : read-request-line ( request -- request ) - read-?crlf [ dup empty? ] [ drop read-?crlf ] while + read-?crlf [ dup "" = ] [ drop read-?crlf ] while parse-request-line first3 [ >>method ] [ >url check-absolute >>url ] [ >>version ] tri* ;