summaryrefslogtreecommitdiff
path: root/ext/http
diff options
context:
space:
mode:
Diffstat (limited to 'ext/http')
-rw-r--r--ext/http/00_serve.js94
-rw-r--r--ext/http/http_next.rs38
-rw-r--r--ext/http/lib.rs40
3 files changed, 90 insertions, 82 deletions
diff --git a/ext/http/00_serve.js b/ext/http/00_serve.js
index b18c26e80..1746b1d47 100644
--- a/ext/http/00_serve.js
+++ b/ext/http/00_serve.js
@@ -50,35 +50,35 @@ const {
const {
op_http_wait,
- op_upgrade,
- op_get_request_headers,
- op_get_request_method_and_url,
- op_read_request_body,
- op_serve_http,
- op_set_promise_complete,
- op_set_response_body_bytes,
- op_set_response_body_resource,
- op_set_response_body_stream,
- op_set_response_body_text,
- op_set_response_header,
- op_set_response_headers,
- op_upgrade_raw,
+ op_http_upgrade_next,
+ op_http_get_request_headers,
+ op_http_get_request_method_and_url,
+ op_http_read_request_body,
+ op_http_serve,
+ op_http_set_promise_complete,
+ op_http_set_response_body_bytes,
+ op_http_set_response_body_resource,
+ op_http_set_response_body_stream,
+ op_http_set_response_body_text,
+ op_http_set_response_header,
+ op_http_set_response_headers,
+ op_http_upgrade_raw,
op_ws_server_create,
} = core.generateAsyncOpHandler(
"op_http_wait",
- "op_upgrade",
- "op_get_request_headers",
- "op_get_request_method_and_url",
- "op_read_request_body",
- "op_serve_http",
- "op_set_promise_complete",
- "op_set_response_body_bytes",
- "op_set_response_body_resource",
- "op_set_response_body_stream",
- "op_set_response_body_text",
- "op_set_response_header",
- "op_set_response_headers",
- "op_upgrade_raw",
+ "op_http_upgrade_next",
+ "op_http_get_request_headers",
+ "op_http_get_request_method_and_url",
+ "op_http_read_request_body",
+ "op_http_serve",
+ "op_http_set_promise_complete",
+ "op_http_set_response_body_bytes",
+ "op_http_set_response_body_resource",
+ "op_http_set_response_body_stream",
+ "op_http_set_response_body_text",
+ "op_http_set_response_header",
+ "op_http_set_response_headers",
+ "op_http_upgrade_raw",
"op_ws_server_create",
);
const _upgraded = Symbol("_upgraded");
@@ -178,7 +178,7 @@ class InnerRequest {
this.#upgraded = () => {};
- const upgradeRid = op_upgrade_raw(slabId);
+ const upgradeRid = op_http_upgrade_raw(slabId);
const conn = new TcpConn(
upgradeRid,
@@ -209,7 +209,7 @@ class InnerRequest {
(async () => {
try {
// Returns the connection and extra bytes, which we can pass directly to op_ws_server_create
- const upgrade = await op_upgrade(
+ const upgrade = await op_http_upgrade_next(
slabId,
response.headerList,
);
@@ -248,7 +248,7 @@ class InnerRequest {
}
// TODO(mmastrac): This is quite slow as we're serializing a large number of values. We may want to consider
// splitting this up into multiple ops.
- this.#methodAndUri = op_get_request_method_and_url(this.#slabId);
+ this.#methodAndUri = op_http_get_request_method_and_url(this.#slabId);
}
const path = this.#methodAndUri[2];
@@ -283,7 +283,7 @@ class InnerRequest {
if (this.#slabId === undefined) {
throw new TypeError("request closed");
}
- this.#methodAndUri = op_get_request_method_and_url(this.#slabId);
+ this.#methodAndUri = op_http_get_request_method_and_url(this.#slabId);
}
return {
transport: "tcp",
@@ -297,7 +297,7 @@ class InnerRequest {
if (this.#slabId === undefined) {
throw new TypeError("request closed");
}
- this.#methodAndUri = op_get_request_method_and_url(this.#slabId);
+ this.#methodAndUri = op_http_get_request_method_and_url(this.#slabId);
}
return this.#methodAndUri[0];
}
@@ -315,7 +315,7 @@ class InnerRequest {
this.#body = null;
return null;
}
- this.#streamRid = op_read_request_body(this.#slabId);
+ this.#streamRid = op_http_read_request_body(this.#slabId);
this.#body = new InnerBody(readableStreamForRid(this.#streamRid, false));
return this.#body;
}
@@ -324,7 +324,7 @@ class InnerRequest {
if (this.#slabId === undefined) {
throw new TypeError("request closed");
}
- return op_get_request_headers(this.#slabId);
+ return op_http_get_request_headers(this.#slabId);
}
get slabId() {
@@ -365,12 +365,12 @@ function fastSyncResponseOrStream(req, respBody) {
const body = stream.body;
if (ObjectPrototypeIsPrototypeOf(Uint8ArrayPrototype, body)) {
- op_set_response_body_bytes(req, body);
+ op_http_set_response_body_bytes(req, body);
return null;
}
if (typeof body === "string") {
- op_set_response_body_text(req, body);
+ op_http_set_response_body_text(req, body);
return null;
}
@@ -380,7 +380,7 @@ function fastSyncResponseOrStream(req, respBody) {
}
const resourceBacking = getReadableStreamResourceBacking(stream);
if (resourceBacking) {
- op_set_response_body_resource(
+ op_http_set_response_body_resource(
req,
resourceBacking.rid,
resourceBacking.autoClose,
@@ -416,9 +416,9 @@ async function asyncResponse(responseBodies, req, status, stream) {
// and we race it.
let timeoutPromise;
timeout = setTimeout(() => {
- responseRid = op_set_response_body_stream(req);
+ responseRid = op_http_set_response_body_stream(req);
SetPrototypeAdd(responseBodies, responseRid);
- op_set_promise_complete(req, status);
+ op_http_set_promise_complete(req, status);
timeoutPromise = core.writeAll(responseRid, value1);
}, 250);
const { value: value2, done: done2 } = await reader.read();
@@ -443,13 +443,13 @@ async function asyncResponse(responseBodies, req, status, stream) {
// Reader will be closed by finally block
// No response stream
closed = true;
- op_set_response_body_bytes(req, value1);
+ op_http_set_response_body_bytes(req, value1);
return;
}
- responseRid = op_set_response_body_stream(req);
+ responseRid = op_http_set_response_body_stream(req);
SetPrototypeAdd(responseBodies, responseRid);
- op_set_promise_complete(req, status);
+ op_http_set_promise_complete(req, status);
// Write our first packet
await core.writeAll(responseRid, value1);
}
@@ -481,7 +481,7 @@ async function asyncResponse(responseBodies, req, status, stream) {
core.tryClose(responseRid);
SetPrototypeDelete(responseBodies, responseRid);
} else {
- op_set_promise_complete(req, status);
+ op_http_set_promise_complete(req, status);
}
}
}
@@ -545,9 +545,9 @@ function mapToCallback(responseBodies, context, signal, callback, onError) {
const headers = inner.headerList;
if (headers && headers.length > 0) {
if (headers.length == 1) {
- op_set_response_header(req, headers[0][0], headers[0][1]);
+ op_http_set_response_header(req, headers[0][0], headers[0][1]);
} else {
- op_set_response_headers(req, headers);
+ op_http_set_response_headers(req, headers);
}
}
@@ -557,7 +557,7 @@ function mapToCallback(responseBodies, context, signal, callback, onError) {
// Handle the stream asynchronously
await asyncResponse(responseBodies, req, status, stream);
} else {
- op_set_promise_complete(req, status);
+ op_http_set_promise_complete(req, status);
}
innerRequest?.close();
@@ -625,13 +625,13 @@ async function serve(arg1, arg2) {
listenOpts.alpnProtocols = ["h2", "http/1.1"];
const listener = Deno.listenTls(listenOpts);
listenOpts.port = listener.addr.port;
- context.initialize(op_serve_http(
+ context.initialize(op_http_serve(
listener.rid,
));
} else {
const listener = Deno.listen(listenOpts);
listenOpts.port = listener.addr.port;
- context.initialize(op_serve_http(
+ context.initialize(op_http_serve(
listener.rid,
));
}
diff --git a/ext/http/http_next.rs b/ext/http/http_next.rs
index 5ed443142..f3d37f751 100644
--- a/ext/http/http_next.rs
+++ b/ext/http/http_next.rs
@@ -235,7 +235,7 @@ fn slab_insert(
}
#[op]
-pub fn op_upgrade_raw(
+pub fn op_http_upgrade_raw(
state: &mut OpState,
index: u32,
) -> Result<ResourceId, AnyError> {
@@ -310,7 +310,7 @@ pub fn op_upgrade_raw(
}
#[op]
-pub async fn op_upgrade(
+pub async fn op_http_upgrade_next(
state: Rc<RefCell<OpState>>,
index: u32,
headers: Vec<(ByteString, ByteString)>,
@@ -353,7 +353,7 @@ pub async fn op_upgrade(
}
#[op(fast)]
-pub fn op_set_promise_complete(index: u32, status: u16) {
+pub fn op_http_set_promise_complete(index: u32, status: u16) {
with_resp_mut(index, |resp| {
// The Javascript code will never provide a status that is invalid here (see 23_response.js)
*resp.as_mut().unwrap().status_mut() =
@@ -365,7 +365,7 @@ pub fn op_set_promise_complete(index: u32, status: u16) {
}
#[op]
-pub fn op_get_request_method_and_url(
+pub fn op_http_get_request_method_and_url(
index: u32,
) -> (String, Option<String>, String, String, Option<u16>) {
// TODO(mmastrac): Passing method can be optimized
@@ -393,7 +393,10 @@ pub fn op_get_request_method_and_url(
}
#[op]
-pub fn op_get_request_header(index: u32, name: String) -> Option<ByteString> {
+pub fn op_http_get_request_header(
+ index: u32,
+ name: String,
+) -> Option<ByteString> {
with_req(index, |req| {
let value = req.headers.get(name);
value.map(|value| value.as_bytes().into())
@@ -401,7 +404,9 @@ pub fn op_get_request_header(index: u32, name: String) -> Option<ByteString> {
}
#[op]
-pub fn op_get_request_headers(index: u32) -> Vec<(ByteString, ByteString)> {
+pub fn op_http_get_request_headers(
+ index: u32,
+) -> Vec<(ByteString, ByteString)> {
with_req(index, |req| {
let headers = &req.headers;
let mut vec = Vec::with_capacity(headers.len());
@@ -436,7 +441,10 @@ pub fn op_get_request_headers(index: u32) -> Vec<(ByteString, ByteString)> {
}
#[op(fast)]
-pub fn op_read_request_body(state: &mut OpState, index: u32) -> ResourceId {
+pub fn op_http_read_request_body(
+ state: &mut OpState,
+ index: u32,
+) -> ResourceId {
let incoming = with_req_body_mut(index, |body| body.take().unwrap());
let body_resource = Rc::new(HttpRequestBody::new(incoming));
let res = state.resource_table.add_rc(body_resource.clone());
@@ -447,7 +455,7 @@ pub fn op_read_request_body(state: &mut OpState, index: u32) -> ResourceId {
}
#[op(fast)]
-pub fn op_set_response_header(index: u32, name: &str, value: &str) {
+pub fn op_http_set_response_header(index: u32, name: &str, value: &str) {
with_resp_mut(index, |resp| {
let resp_headers = resp.as_mut().unwrap().headers_mut();
// These are valid latin-1 strings
@@ -458,7 +466,7 @@ pub fn op_set_response_header(index: u32, name: &str, value: &str) {
}
#[op]
-pub fn op_set_response_headers(
+pub fn op_http_set_response_headers(
index: u32,
headers: Vec<(ByteString, ByteString)>,
) {
@@ -476,7 +484,7 @@ pub fn op_set_response_headers(
}
#[op(fast)]
-pub fn op_set_response_body_resource(
+pub fn op_http_set_response_body_resource(
state: &mut OpState,
index: u32,
stream_rid: ResourceId,
@@ -502,7 +510,7 @@ pub fn op_set_response_body_resource(
}
#[op(fast)]
-pub fn op_set_response_body_stream(
+pub fn op_http_set_response_body_stream(
state: &mut OpState,
index: u32,
) -> Result<ResourceId, AnyError> {
@@ -521,7 +529,7 @@ pub fn op_set_response_body_stream(
}
#[op(fast)]
-pub fn op_set_response_body_text(index: u32, text: String) {
+pub fn op_http_set_response_body_text(index: u32, text: String) {
if !text.is_empty() {
with_resp_mut(index, move |response| {
response
@@ -534,7 +542,7 @@ pub fn op_set_response_body_text(index: u32, text: String) {
}
#[op(fast)]
-pub fn op_set_response_body_bytes(index: u32, buffer: &[u8]) {
+pub fn op_http_set_response_body_bytes(index: u32, buffer: &[u8]) {
if !buffer.is_empty() {
with_resp_mut(index, |response| {
response
@@ -759,7 +767,7 @@ impl Drop for HttpJoinHandle {
}
#[op(v8)]
-pub fn op_serve_http(
+pub fn op_http_serve(
state: Rc<RefCell<OpState>>,
listener_rid: ResourceId,
) -> Result<(ResourceId, &'static str, String), AnyError> {
@@ -814,7 +822,7 @@ pub fn op_serve_http(
}
#[op(v8)]
-pub fn op_serve_http_on(
+pub fn op_http_serve_on(
state: Rc<RefCell<OpState>>,
conn: ResourceId,
) -> Result<(ResourceId, &'static str, String), AnyError> {
diff --git a/ext/http/lib.rs b/ext/http/lib.rs
index cde15af88..6dab375a1 100644
--- a/ext/http/lib.rs
+++ b/ext/http/lib.rs
@@ -88,30 +88,30 @@ deno_core::extension!(
deps = [deno_web, deno_net, deno_fetch, deno_websocket],
ops = [
op_http_accept,
- op_http_write_headers,
op_http_headers,
- op_http_write,
- op_http_write_resource,
op_http_shutdown,
- op_http_websocket_accept_header,
op_http_upgrade_websocket,
- http_next::op_serve_http,
- http_next::op_serve_http_on,
- http_next::op_http_wait,
+ op_http_websocket_accept_header,
+ op_http_write_headers,
+ op_http_write_resource,
+ op_http_write,
+ http_next::op_http_get_request_header,
+ http_next::op_http_get_request_headers,
+ http_next::op_http_get_request_method_and_url,
+ http_next::op_http_read_request_body,
+ http_next::op_http_serve_on,
+ http_next::op_http_serve,
+ http_next::op_http_set_promise_complete,
+ http_next::op_http_set_response_body_bytes,
+ http_next::op_http_set_response_body_resource,
+ http_next::op_http_set_response_body_stream,
+ http_next::op_http_set_response_body_text,
+ http_next::op_http_set_response_header,
+ http_next::op_http_set_response_headers,
http_next::op_http_track,
- http_next::op_set_response_header,
- http_next::op_set_response_headers,
- http_next::op_set_response_body_text,
- http_next::op_set_promise_complete,
- http_next::op_set_response_body_bytes,
- http_next::op_set_response_body_resource,
- http_next::op_set_response_body_stream,
- http_next::op_get_request_header,
- http_next::op_get_request_headers,
- http_next::op_get_request_method_and_url,
- http_next::op_read_request_body,
- http_next::op_upgrade,
- http_next::op_upgrade_raw,
+ http_next::op_http_upgrade_raw,
+ http_next::op_http_upgrade_next,
+ http_next::op_http_wait,
],
esm = ["00_serve.js", "01_http.js"],
);