diff options
author | Nayeem Rahman <muhammed.9939@gmail.com> | 2020-03-20 16:12:27 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-20 12:12:27 -0400 |
commit | b22f48970fc18c4e5fd72df15ac798477fbe49cb (patch) | |
tree | 0d94038d92256e32f55c9b08f3f9423c92fef0db | |
parent | 1c6f177d198cb4abe7a126dc543b733fa95376d1 (diff) |
refactor(std/http/server): Remove bad error handling (#4435)
-rw-r--r-- | std/http/server.ts | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/std/http/server.ts b/std/http/server.ts index 72bd1e5f3..2cd51b005 100644 --- a/std/http/server.ts +++ b/std/http/server.ts @@ -9,7 +9,6 @@ import { writeResponse, readRequest } from "./io.ts"; -import { encode } from "../strings/mod.ts"; import Listener = Deno.Listener; import Conn = Deno.Conn; import Reader = Deno.Reader; @@ -149,7 +148,7 @@ export class Server implements AsyncIterable<ServerRequest> { ): AsyncIterableIterator<ServerRequest> { const bufr = new BufReader(conn); const w = new BufWriter(conn); - let req: ServerRequest | Deno.EOF | undefined; + let req: ServerRequest | Deno.EOF = Deno.EOF; let err: Error | undefined; while (!this.closing) { @@ -157,9 +156,8 @@ export class Server implements AsyncIterable<ServerRequest> { req = await readRequest(conn, bufr); } catch (e) { err = e; - break; } - if (req === Deno.EOF) { + if (err != null || req === Deno.EOF) { break; } @@ -180,24 +178,6 @@ export class Server implements AsyncIterable<ServerRequest> { await req.finalize(); } - if (req === Deno.EOF) { - // The connection was gracefully closed. - } else if (err && req) { - // An error was thrown while parsing request headers. - try { - await writeResponse(req.w, { - status: 400, - body: encode(`${err.message}\r\n\r\n`) - }); - } catch (_) { - // The connection is destroyed. - // Ignores the error. - } - } else if (this.closing) { - // There are more requests incoming but the server is closing. - // TODO(ry): send a back a HTTP 503 Service Unavailable status. - } - this.untrackConnection(conn); try { conn.close(); |