summaryrefslogtreecommitdiff
path: root/ext/http/lib.rs
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2021-08-15 13:29:19 +0200
committerGitHub <noreply@github.com>2021-08-15 13:29:19 +0200
commit2ca454b402d48c1808f8233c5adedc11b714c63c (patch)
tree592f9e877e9b0ae92be80383ab723cc290e4b01e /ext/http/lib.rs
parent18ff6bb053d600c277613628a256fe5fdd4dda67 (diff)
refactor(ops): return BadResource errors in ResourceTable calls (#11710)
* refactor(ops): return BadResource errors in ResourceTable calls Instead of relying on callers to map Options to Results via `.ok_or_else(bad_resource_id)` at over 176 different call sites ...
Diffstat (limited to 'ext/http/lib.rs')
-rw-r--r--ext/http/lib.rs32
1 files changed, 11 insertions, 21 deletions
diff --git a/ext/http/lib.rs b/ext/http/lib.rs
index eac09a1ec..8e9142345 100644
--- a/ext/http/lib.rs
+++ b/ext/http/lib.rs
@@ -175,8 +175,7 @@ async fn op_http_request_next(
let conn_resource = state
.borrow()
.resource_table
- .get::<ConnResource>(conn_rid)
- .ok_or_else(bad_resource_id)?;
+ .get::<ConnResource>(conn_rid)?;
let cancel = RcRef::map(conn_resource.clone(), |r| &r.cancel);
@@ -395,8 +394,7 @@ async fn op_http_response(
let response_sender = state
.borrow_mut()
.resource_table
- .take::<ResponseSenderResource>(rid)
- .ok_or_else(bad_resource_id)?;
+ .take::<ResponseSenderResource>(rid)?;
let response_sender = Rc::try_unwrap(response_sender)
.ok()
.expect("multiple op_http_respond ongoing");
@@ -406,8 +404,7 @@ async fn op_http_response(
let conn_resource = state
.borrow()
.resource_table
- .get::<ConnResource>(conn_rid)
- .ok_or_else(bad_resource_id)?;
+ .get::<ConnResource>(conn_rid)?;
let mut builder = Response::builder().status(status);
@@ -444,7 +441,7 @@ async fn op_http_response(
poll_fn(|cx| match conn_resource.poll(cx) {
Poll::Ready(x) => {
- state.borrow_mut().resource_table.close(conn_rid);
+ state.borrow_mut().resource_table.close(conn_rid).ok();
Poll::Ready(x)
}
Poll::Pending => Poll::Ready(Ok(())),
@@ -465,14 +462,12 @@ async fn op_http_response_close(
let resource = state
.borrow_mut()
.resource_table
- .take::<ResponseBodyResource>(rid)
- .ok_or_else(bad_resource_id)?;
+ .take::<ResponseBodyResource>(rid)?;
let conn_resource = state
.borrow()
.resource_table
- .get::<ConnResource>(resource.conn_rid)
- .ok_or_else(bad_resource_id)?;
+ .get::<ConnResource>(resource.conn_rid)?;
drop(resource);
let r = poll_fn(|cx| match conn_resource.poll(cx) {
@@ -494,14 +489,12 @@ async fn op_http_request_read(
let resource = state
.borrow()
.resource_table
- .get::<RequestResource>(rid as u32)
- .ok_or_else(bad_resource_id)?;
+ .get::<RequestResource>(rid as u32)?;
let conn_resource = state
.borrow()
.resource_table
- .get::<ConnResource>(resource.conn_rid)
- .ok_or_else(bad_resource_id)?;
+ .get::<ConnResource>(resource.conn_rid)?;
let mut inner = RcRef::map(resource.clone(), |r| &r.inner)
.borrow_mut()
@@ -547,14 +540,12 @@ async fn op_http_response_write(
let resource = state
.borrow()
.resource_table
- .get::<ResponseBodyResource>(rid as u32)
- .ok_or_else(bad_resource_id)?;
+ .get::<ResponseBodyResource>(rid as u32)?;
let conn_resource = state
.borrow()
.resource_table
- .get::<ConnResource>(resource.conn_rid)
- .ok_or_else(bad_resource_id)?;
+ .get::<ConnResource>(resource.conn_rid)?;
let mut body = RcRef::map(&resource, |r| &r.body).borrow_mut().await;
@@ -598,8 +589,7 @@ async fn op_http_upgrade_websocket(
let req_resource = state
.borrow_mut()
.resource_table
- .take::<RequestResource>(rid)
- .ok_or_else(bad_resource_id)?;
+ .take::<RequestResource>(rid)?;
let mut inner = RcRef::map(&req_resource, |r| &r.inner).borrow_mut().await;