Skip to content

Commit 15c69c3

Browse files
Merge pull request #574 from fastly/dgohman-fastly/update
Update to the latest WITs and adapter.
2 parents 8310911 + e38ca0c commit 15c69c3

File tree

11 files changed

+330
-123
lines changed

11 files changed

+330
-123
lines changed

src/component/compute/http_req.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,3 +456,9 @@ impl http_req::HostExtraCacheOverrideDetails for ComponentCtx {
456456
Ok(())
457457
}
458458
}
459+
460+
impl http_req::HostExtraSendErrorDetail for ComponentCtx {
461+
fn drop(&mut self, _details: Resource<http_req::ExtraSendErrorDetail>) -> wasmtime::Result<()> {
462+
Ok(())
463+
}
464+
}

src/component/compute/kv_store.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,3 +331,9 @@ impl kv_store::HostExtraListOptions for ComponentCtx {
331331
Ok(())
332332
}
333333
}
334+
335+
impl kv_store::HostExtraKvError for ComponentCtx {
336+
fn drop(&mut self, _options: Resource<kv_store::ExtraKvError>) -> wasmtime::Result<()> {
337+
Ok(())
338+
}
339+
}

wasm_abi/adapter/src/fastly/cache.rs

Lines changed: 54 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -330,11 +330,15 @@ mod cache {
330330

331331
let cache_key = unsafe { slice::from_raw_parts(main_ptr!(cache_key_ptr), cache_key_len) };
332332

333-
let request_headers = match unsafe { (*options).request_headers } {
334-
INVALID_HANDLE => None,
335-
request_headers => Some(ManuallyDrop::new(unsafe {
336-
http_req::Request::from_handle(request_headers)
337-
})),
333+
let request_headers = if options_mask.contains(CacheWriteOptionsMask::REQUEST_HEADERS) {
334+
match unsafe { (*options).request_headers } {
335+
INVALID_HANDLE => None,
336+
request_headers => Some(ManuallyDrop::new(unsafe {
337+
http_req::Request::from_handle(request_headers)
338+
})),
339+
}
340+
} else {
341+
None
338342
};
339343
let mut options =
340344
match unsafe { write_options(options_mask, options, request_headers.as_ref()) } {
@@ -551,11 +555,15 @@ mod cache {
551555
}
552556

553557
let handle = ManuallyDrop::new(unsafe { cache::Entry::from_handle(handle) });
554-
let request_headers = match unsafe { (*options).request_headers } {
555-
INVALID_HANDLE => None,
556-
request_headers => Some(ManuallyDrop::new(unsafe {
557-
http_req::Request::from_handle(request_headers)
558-
})),
558+
let request_headers = if options_mask.contains(CacheWriteOptionsMask::REQUEST_HEADERS) {
559+
match unsafe { (*options).request_headers } {
560+
INVALID_HANDLE => None,
561+
request_headers => Some(ManuallyDrop::new(unsafe {
562+
http_req::Request::from_handle(request_headers)
563+
})),
564+
}
565+
} else {
566+
None
559567
};
560568
let mut options =
561569
match unsafe { write_options(options_mask, options, request_headers.as_ref()) } {
@@ -610,11 +618,15 @@ mod cache {
610618
}
611619

612620
let handle = ManuallyDrop::new(unsafe { cache::Entry::from_handle(handle) });
613-
let request_headers = match unsafe { (*options).request_headers } {
614-
INVALID_HANDLE => None,
615-
request_headers => Some(ManuallyDrop::new(unsafe {
616-
http_req::Request::from_handle(request_headers)
617-
})),
621+
let request_headers = if options_mask.contains(CacheWriteOptionsMask::REQUEST_HEADERS) {
622+
match unsafe { (*options).request_headers } {
623+
INVALID_HANDLE => None,
624+
request_headers => Some(ManuallyDrop::new(unsafe {
625+
http_req::Request::from_handle(request_headers)
626+
})),
627+
}
628+
} else {
629+
None
618630
};
619631
let mut options =
620632
match unsafe { write_options(options_mask, options, request_headers.as_ref()) } {
@@ -668,11 +680,15 @@ mod cache {
668680
}
669681

670682
let handle = ManuallyDrop::new(unsafe { cache::Entry::from_handle(handle) });
671-
let request_headers = match unsafe { (*options).request_headers } {
672-
INVALID_HANDLE => None,
673-
request_headers => Some(ManuallyDrop::new(unsafe {
674-
http_req::Request::from_handle(request_headers)
675-
})),
683+
let request_headers = if options_mask.contains(CacheWriteOptionsMask::REQUEST_HEADERS) {
684+
match unsafe { (*options).request_headers } {
685+
INVALID_HANDLE => None,
686+
request_headers => Some(ManuallyDrop::new(unsafe {
687+
http_req::Request::from_handle(request_headers)
688+
})),
689+
}
690+
} else {
691+
None
676692
};
677693
let mut options =
678694
match unsafe { write_options(options_mask, options, request_headers.as_ref()) } {
@@ -950,11 +966,15 @@ mod cache {
950966
} else {
951967
None
952968
};
953-
let request_headers = match unsafe { (*options).request_headers } {
954-
INVALID_HANDLE => None,
955-
request_headers => Some(ManuallyDrop::new(unsafe {
956-
http_req::Request::from_handle(request_headers)
957-
})),
969+
let request_headers = if options_mask.contains(CacheReplaceOptionsMask::REQUEST_HEADERS) {
970+
match unsafe { (*options).request_headers } {
971+
INVALID_HANDLE => None,
972+
request_headers => Some(ManuallyDrop::new(unsafe {
973+
http_req::Request::from_handle(request_headers)
974+
})),
975+
}
976+
} else {
977+
None
958978
};
959979
let options = cache::ReplaceOptions {
960980
request_headers: request_headers.as_deref(),
@@ -1005,11 +1025,15 @@ mod cache {
10051025

10061026
let replace_handle = decode_replace_entry(handle);
10071027
let replace_handle = unsafe { cache::ReplaceEntry::from_handle(replace_handle) };
1008-
let request_headers = match unsafe { (*options).request_headers } {
1009-
INVALID_HANDLE => None,
1010-
request_headers => Some(ManuallyDrop::new(unsafe {
1011-
http_req::Request::from_handle(request_headers)
1012-
})),
1028+
let request_headers = if options_mask.contains(CacheWriteOptionsMask::REQUEST_HEADERS) {
1029+
match unsafe { (*options).request_headers } {
1030+
INVALID_HANDLE => None,
1031+
request_headers => Some(ManuallyDrop::new(unsafe {
1032+
http_req::Request::from_handle(request_headers)
1033+
})),
1034+
}
1035+
} else {
1036+
None
10131037
};
10141038
let mut options =
10151039
match unsafe { write_options(options_mask, options, request_headers.as_ref()) } {

0 commit comments

Comments
 (0)