diff options
author | Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> | 2024-09-19 15:03:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-19 15:03:57 -0700 |
commit | 6a04bbe07606e973af51df1a124707ba63aa75b3 (patch) | |
tree | bead0788741e73352b00c53a91c10ab8a1dbde0a /cli/args | |
parent | dad5678baa0c96a40810f9af820145041fb8f98e (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.rs | 30 |
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()); |