Skip to content

Commit

Permalink
Revert "http: delete conn parameter in readRequest" (denoland/deno_st…
Browse files Browse the repository at this point in the history
…d#550)

This reverts commit 209183e.
Fixes: denoland/deno_std#441
Original: denoland/deno_std@3e17815
  • Loading branch information
bartlomieju authored and piscisaureus committed Aug 5, 2019
1 parent 782ebfb commit 50fdccb
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 3 deletions.
5 changes: 4 additions & 1 deletion http/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ export class ServerRequest {
protoMinor!: number;
protoMajor!: number;
headers!: Headers;
conn!: Conn;
r!: BufReader;
w!: BufWriter;
done: Deferred<void> = deferred();
Expand Down Expand Up @@ -283,6 +284,7 @@ export function parseHTTPVersion(vers: string): [number, number] {
}

export async function readRequest(
conn: Conn,
bufr: BufReader
): Promise<ServerRequest | Deno.EOF> {
const tp = new TextProtoReader(bufr);
Expand All @@ -292,6 +294,7 @@ export async function readRequest(
if (headers === Deno.EOF) throw new UnexpectedEOFError();

const req = new ServerRequest();
req.conn = conn;
req.r = bufr;
[req.method, req.url, req.proto] = firstLine.split(" ", 3);
[req.protoMinor, req.protoMajor] = parseHTTPVersion(req.proto);
Expand Down Expand Up @@ -321,7 +324,7 @@ export class Server implements AsyncIterable<ServerRequest> {

while (!this.closing) {
try {
req = await readRequest(bufr);
req = await readRequest(conn, bufr);
} catch (e) {
err = e;
break;
Expand Down
34 changes: 32 additions & 2 deletions http/server_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,21 @@ test(async function responseWrite(): Promise<void> {
const request = new ServerRequest();
request.w = bufw;

request.conn = {
localAddr: "",
remoteAddr: "",
rid: -1,
closeRead: (): void => {},
closeWrite: (): void => {},
read: async (): Promise<number | Deno.EOF> => {
return 0;
},
write: async (): Promise<number> => {
return -1;
},
close: (): void => {}
};

await request.respond(testCase.response);
assertEquals(buf.toString(), testCase.raw);
await request.done;
Expand Down Expand Up @@ -318,14 +333,29 @@ test(async function writeStringReaderResponse(): Promise<void> {
assertEquals(r.more, false);
});

const mockConn = {
localAddr: "",
remoteAddr: "",
rid: -1,
closeRead: (): void => {},
closeWrite: (): void => {},
read: async (): Promise<number | Deno.EOF> => {
return 0;
},
write: async (): Promise<number> => {
return -1;
},
close: (): void => {}
};

test(async function readRequestError(): Promise<void> {
let input = `GET / HTTP/1.1
malformedHeader
`;
const reader = new BufReader(new StringReader(input));
let err;
try {
await readRequest(reader);
await readRequest(mockConn, reader);
} catch (e) {
err = e;
}
Expand Down Expand Up @@ -404,7 +434,7 @@ test(async function testReadRequestError(): Promise<void> {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
let req: any;
try {
req = await readRequest(reader);
req = await readRequest(mockConn, reader);
} catch (e) {
err = e;
}
Expand Down

0 comments on commit 50fdccb

Please sign in to comment.