diff --git a/progenitor-client/src/progenitor_client.rs b/progenitor-client/src/progenitor_client.rs index 3286259..f2951f9 100644 --- a/progenitor-client/src/progenitor_client.rs +++ b/progenitor-client/src/progenitor_client.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Oxide Computer Company +// Copyright 2023 Oxide Computer Company #![allow(dead_code)] @@ -366,6 +366,7 @@ where } } +// See https://url.spec.whatwg.org/#url-path-segment-string const PATH_SET: &percent_encoding::AsciiSet = &percent_encoding::CONTROLS .add(b' ') .add(b'"') @@ -375,7 +376,9 @@ const PATH_SET: &percent_encoding::AsciiSet = &percent_encoding::CONTROLS .add(b'?') .add(b'`') .add(b'{') - .add(b'}'); + .add(b'}') + .add(b'/') + .add(b'%'); #[doc(hidden)] pub fn encode_path(pc: &str) -> String { diff --git a/progenitor-client/tests/client_test.rs b/progenitor-client/tests/client_test.rs new file mode 100644 index 0000000..dde2829 --- /dev/null +++ b/progenitor-client/tests/client_test.rs @@ -0,0 +1,8 @@ +// Copyright 2023 Oxide Computer Company + +use progenitor_client::encode_path; + +#[test] +fn test_path_segment_encoding() { + assert_eq!(encode_path("192.168.0.0/24"), "192.168.0.0%2F24"); +}