提交 1052f8d0 编写于 作者: P Parsa Ghadimi 提交者: Ryan Dahl

Check allow-net in fetch

上级 1e709aa3
......@@ -166,8 +166,7 @@ class FetchRequest {
fbs.FetchReq.addId(builder, this.id);
fbs.FetchReq.addUrl(builder, url);
const msg = fbs.FetchReq.endFetchReq(builder);
const res = send(builder, fbs.Any.FetchReq, msg);
assert(res == null);
send(builder, fbs.Any.FetchReq, msg);
}
}
......@@ -177,7 +176,7 @@ export function fetch(
): Promise<Response> {
const fetchReq = new FetchRequest(input as string);
const response = fetchReq.response;
return new Promise((resolve, reject) => {
const promise = new Promise<Response>((resolve, reject) => {
response.onHeader = (response: FetchResponse) => {
log("onHeader");
resolve(response);
......@@ -186,6 +185,7 @@ export function fetch(
log("onError", error);
reject(error);
};
fetchReq.start();
});
fetchReq.start();
return promise;
}
// Copyright 2018 the Deno authors. All rights reserved. MIT license.
import { testPerm, assertEqual } from "./test_util.ts";
import { test, testPerm, assert, assertEqual } from "./test_util.ts";
import * as deno from "deno";
testPerm({ net: true }, async function fetchJsonSuccess() {
......@@ -7,3 +7,15 @@ testPerm({ net: true }, async function fetchJsonSuccess() {
const json = await response.json();
assertEqual(json.name, "deno");
});
test(async function fetchPerm() {
let err;
try {
await fetch("http://localhost:4545/package.json");
} catch (err_) {
err = err_;
}
// TODO assert(err instanceof deno.PermissionDenied).
assert(err);
assertEqual(err.name, "deno.PermissionDenied");
});
......@@ -289,10 +289,17 @@ fn handle_fetch_req(
base: msg::Base,
_builder: &mut FlatBufferBuilder,
) -> HandlerResult {
let deno = from_c(d);
if !deno.flags.allow_net {
let err = std::io::Error::new(
std::io::ErrorKind::PermissionDenied,
"allow_net is off.",
);
return Err(err.into());
}
let msg = base.msg_as_fetch_req().unwrap();
let id = msg.id();
let url = msg.url().unwrap();
let deno = from_c(d);
let url = url.parse::<hyper::Uri>().unwrap();
let client = Client::new();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册