summaryrefslogtreecommitdiff
path: root/cli/args
diff options
context:
space:
mode:
authorNathan Whitaker <17734409+nathanwhit@users.noreply.github.com>2024-09-19 15:03:57 -0700
committerGitHub <noreply@github.com>2024-09-19 15:03:57 -0700
commit6a04bbe07606e973af51df1a124707ba63aa75b3 (patch)
treebead0788741e73352b00c53a91c10ab8a1dbde0a /cli/args
parentdad5678baa0c96a40810f9af820145041fb8f98e (diff)
fix(cli): Only set allow net flag for deno serve if not already allowed all (#25743)
Fixes #25740
Diffstat (limited to 'cli/args')
-rw-r--r--cli/args/flags.rs30
1 files changed, 29 insertions, 1 deletions
diff --git a/cli/args/flags.rs b/cli/args/flags.rs
index 79ee38d75..691927353 100644
--- a/cli/args/flags.rs
+++ b/cli/args/flags.rs
@@ -4738,7 +4738,10 @@ fn serve_parse(
format!("{host}:{port}")
}])?;
match &mut flags.permissions.allow_net {
- None => flags.permissions.allow_net = Some(allowed),
+ None if !flags.permissions.allow_all => {
+ flags.permissions.allow_net = Some(allowed)
+ }
+ None => {}
Some(v) => {
if !v.is_empty() {
v.extend(allowed);
@@ -10748,6 +10751,31 @@ mod tests {
}
#[test]
+ fn serve_with_allow_all() {
+ let r = flags_from_vec(svec!["deno", "serve", "--allow-all", "./main.ts"]);
+ let flags = r.unwrap();
+ assert_eq!(
+ &flags,
+ &Flags {
+ subcommand: DenoSubcommand::Serve(ServeFlags::new_default(
+ "./main.ts".into(),
+ 8000,
+ "0.0.0.0"
+ )),
+ permissions: PermissionFlags {
+ allow_all: true,
+ allow_net: None,
+ ..Default::default()
+ },
+ code_cache_enabled: true,
+ ..Default::default()
+ }
+ );
+ // just make sure this doesn't panic
+ let _ = flags.permissions.to_options();
+ }
+
+ #[test]
fn escape_and_split_commas_test() {
assert_eq!(escape_and_split_commas("foo".to_string()).unwrap(), ["foo"]);
assert!(escape_and_split_commas("foo,".to_string()).is_err());