diff options
Diffstat (limited to 'ext/http/lib.rs')
-rw-r--r-- | ext/http/lib.rs | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/ext/http/lib.rs b/ext/http/lib.rs index 719dcd6de..7d2397fff 100644 --- a/ext/http/lib.rs +++ b/ext/http/lib.rs @@ -20,7 +20,7 @@ use deno_core::futures::stream::Peekable; use deno_core::futures::FutureExt; use deno_core::futures::StreamExt; use deno_core::futures::TryFutureExt; -use deno_core::op; +use deno_core::op2; use deno_core::unsync::spawn; use deno_core::AsyncRefCell; use deno_core::AsyncResult; @@ -511,10 +511,11 @@ struct NextRequestResponse( String, ); -#[op] +#[op2(async)] +#[serde] async fn op_http_accept( state: Rc<RefCell<OpState>>, - rid: ResourceId, + #[smi] rid: ResourceId, ) -> Result<Option<NextRequestResponse>, AnyError> { let conn = state.borrow().resource_table.get::<HttpConnResource>(rid)?; @@ -613,13 +614,13 @@ fn req_headers( headers } -#[op] +#[op2(async)] async fn op_http_write_headers( state: Rc<RefCell<OpState>>, - rid: u32, - status: u16, - headers: Vec<(ByteString, ByteString)>, - data: Option<StringOrBuffer>, + #[smi] rid: u32, + #[smi] status: u16, + #[serde] headers: Vec<(ByteString, ByteString)>, + #[serde] data: Option<StringOrBuffer>, ) -> Result<(), AnyError> { let stream = state .borrow_mut() @@ -683,10 +684,11 @@ async fn op_http_write_headers( } } -#[op] +#[op2] +#[serde] fn op_http_headers( state: &mut OpState, - rid: u32, + #[smi] rid: u32, ) -> Result<Vec<(ByteString, ByteString)>, AnyError> { let stream = state.resource_table.get::<HttpStreamResource>(rid)?; let rd = RcRef::map(&stream, |r| &r.rd) @@ -832,11 +834,11 @@ fn should_compress(headers: &hyper::HeaderMap) -> bool { .unwrap_or_default() } -#[op] +#[op2(async)] async fn op_http_write_resource( state: Rc<RefCell<OpState>>, - rid: ResourceId, - stream: ResourceId, + #[smi] rid: ResourceId, + #[smi] stream: ResourceId, ) -> Result<(), AnyError> { let http_stream = state .borrow() @@ -891,11 +893,11 @@ async fn op_http_write_resource( Ok(()) } -#[op] +#[op2(async)] async fn op_http_write( state: Rc<RefCell<OpState>>, - rid: ResourceId, - buf: JsBuffer, + #[smi] rid: ResourceId, + #[buffer] buf: JsBuffer, ) -> Result<(), AnyError> { let stream = state .borrow() @@ -944,10 +946,10 @@ async fn op_http_write( /// Gracefully closes the write half of the HTTP stream. Note that this does not /// remove the HTTP stream resource from the resource table; it still has to be /// closed with `Deno.core.close()`. -#[op] +#[op2(async)] async fn op_http_shutdown( state: Rc<RefCell<OpState>>, - rid: ResourceId, + #[smi] rid: ResourceId, ) -> Result<(), AnyError> { let stream = state .borrow() @@ -979,8 +981,11 @@ async fn op_http_shutdown( Ok(()) } -#[op] -fn op_http_websocket_accept_header(key: String) -> Result<String, AnyError> { +#[op2] +#[string] +fn op_http_websocket_accept_header( + #[string] key: String, +) -> Result<String, AnyError> { let digest = ring::digest::digest( &ring::digest::SHA1_FOR_LEGACY_USE_ONLY, format!("{key}258EAFA5-E914-47DA-95CA-C5AB0DC85B11").as_bytes(), @@ -988,10 +993,11 @@ fn op_http_websocket_accept_header(key: String) -> Result<String, AnyError> { Ok(base64::encode(digest)) } -#[op] +#[op2(async)] +#[smi] async fn op_http_upgrade_websocket( state: Rc<RefCell<OpState>>, - rid: ResourceId, + #[smi] rid: ResourceId, ) -> Result<ResourceId, AnyError> { let stream = state .borrow_mut() |