summaryrefslogtreecommitdiff
path: root/ext/net
diff options
context:
space:
mode:
Diffstat (limited to 'ext/net')
-rw-r--r--ext/net/lib.rs39
-rw-r--r--ext/net/ops.rs6
-rw-r--r--ext/net/ops_tls.rs4
-rw-r--r--ext/net/ops_unix.rs2
4 files changed, 11 insertions, 40 deletions
diff --git a/ext/net/lib.rs b/ext/net/lib.rs
index 0e3778d5a..1fc7e3420 100644
--- a/ext/net/lib.rs
+++ b/ext/net/lib.rs
@@ -12,10 +12,8 @@ use deno_core::error::AnyError;
use deno_core::OpState;
use deno_tls::rustls::RootCertStore;
use deno_tls::RootCertStoreProvider;
-use std::cell::RefCell;
use std::path::Path;
use std::path::PathBuf;
-use std::rc::Rc;
use std::sync::Arc;
pub trait NetPermissions {
@@ -29,38 +27,11 @@ pub trait NetPermissions {
-> Result<(), AnyError>;
}
-/// `UnstableChecker` is a struct so it can be placed inside `GothamState`;
-/// using type alias for a bool could work, but there's a high chance
-/// that there might be another type alias pointing to a bool, which
-/// would override previously used alias.
-pub struct UnstableChecker {
- pub unstable: bool,
-}
-
-impl UnstableChecker {
- /// Quits the process if the --unstable flag was not provided.
- ///
- /// This is intentionally a non-recoverable check so that people cannot probe
- /// for unstable APIs from stable programs.
- // NOTE(bartlomieju): keep in sync with `cli/program_state.rs`
- pub fn check_unstable(&self, api_name: &str) {
- if !self.unstable {
- eprintln!(
- "Unstable API '{api_name}'. The --unstable flag must be provided."
- );
- std::process::exit(70);
- }
- }
-}
/// Helper for checking unstable features. Used for sync ops.
-pub fn check_unstable(state: &OpState, api_name: &str) {
- state.borrow::<UnstableChecker>().check_unstable(api_name)
-}
-
-/// Helper for checking unstable features. Used for async ops.
-pub fn check_unstable2(state: &Rc<RefCell<OpState>>, api_name: &str) {
- let state = state.borrow();
- state.borrow::<UnstableChecker>().check_unstable(api_name)
+fn check_unstable(state: &OpState, api_name: &str) {
+ state
+ .feature_checker
+ .check_legacy_unstable_or_exit(api_name);
}
pub fn get_declaration() -> PathBuf {
@@ -125,14 +96,12 @@ deno_core::extension!(deno_net,
esm = [ "01_net.js", "02_tls.js" ],
options = {
root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>,
- unstable: bool,
unsafely_ignore_certificate_errors: Option<Vec<String>>,
},
state = |state, options| {
state.put(DefaultTlsOptions {
root_cert_store_provider: options.root_cert_store_provider,
});
- state.put(UnstableChecker { unstable: options.unstable });
state.put(UnsafelyIgnoreCertificateErrors(
options.unsafely_ignore_certificate_errors,
));
diff --git a/ext/net/ops.rs b/ext/net/ops.rs
index 5deaeb61e..5738620f8 100644
--- a/ext/net/ops.rs
+++ b/ext/net/ops.rs
@@ -771,7 +771,6 @@ fn rdata_to_return_record(
#[cfg(test)]
mod tests {
use super::*;
- use crate::UnstableChecker;
use deno_core::futures::FutureExt;
use deno_core::JsRuntime;
use deno_core::RuntimeOptions;
@@ -1039,7 +1038,6 @@ mod tests {
test_ext,
state = |state| {
state.put(TestPermission {});
- state.put(UnstableChecker { unstable: true });
}
);
@@ -1049,6 +1047,10 @@ mod tests {
});
let conn_state = runtime.op_state();
+ conn_state
+ .borrow_mut()
+ .feature_checker
+ .enable_legacy_unstable();
let server_addr: Vec<&str> = clone_addr.split(':').collect();
let ip_addr = IpAddr {
diff --git a/ext/net/ops_tls.rs b/ext/net/ops_tls.rs
index 0b84415b9..fe0e70a5c 100644
--- a/ext/net/ops_tls.rs
+++ b/ext/net/ops_tls.rs
@@ -878,10 +878,10 @@ where
.and_then(|it| it.0.clone());
if args.cert_chain.is_some() {
- super::check_unstable2(&state, "ConnectTlsOptions.certChain");
+ super::check_unstable(&state.borrow(), "ConnectTlsOptions.certChain");
}
if args.private_key.is_some() {
- super::check_unstable2(&state, "ConnectTlsOptions.privateKey");
+ super::check_unstable(&state.borrow(), "ConnectTlsOptions.privateKey");
}
{
diff --git a/ext/net/ops_unix.rs b/ext/net/ops_unix.rs
index 7a5da9fa1..a36f1c30b 100644
--- a/ext/net/ops_unix.rs
+++ b/ext/net/ops_unix.rs
@@ -114,7 +114,7 @@ where
NP: NetPermissions + 'static,
{
let address_path = Path::new(&path);
- super::check_unstable2(&state, "Deno.connect");
+ super::check_unstable(&state.borrow(), "Deno.connect");
{
let mut state_ = state.borrow_mut();
state_