1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -43,4 +43,4 @@
-[dependencies.hostname-validator]
-version = "1.1.0"
+#[dependencies.hostname-validator]
+#version = "1.1.0"
--- a/src/tcti_ldr.rs
+++ b/src/tcti_ldr.rs
@@ -168,2 +168,19 @@
+fn hostname_is_valid(hostname: &str) -> bool {
+ fn is_valid_char(byte: u8) -> bool {
+ (b'a'..=b'z').contains(&byte)
+ || (b'A'..=b'Z').contains(&byte)
+ || (b'0'..=b'9').contains(&byte)
+ || byte == b'-'
+ || byte == b'.'
+ }
+
+ !(hostname.bytes().any(|byte| !is_valid_char(byte))
+ || hostname.split('.').any(|label| {
+ label.is_empty() || label.len() > 63 || label.starts_with('-') || label.ends_with('-')
+ })
+ || hostname.is_empty()
+ || hostname.len() > 253)
+}
+
impl TryFrom<TctiNameConf> for CString {
@@ -182,3 +199,3 @@
if let ServerAddress::Hostname(name) = &config.host {
- if !hostname_validator::is_valid(name) {
+ if !hostname_is_valid(name) {
return Err(Error::WrapperError(WrapperErrorKind::InvalidParam));
@@ -190,3 +207,3 @@
if let ServerAddress::Hostname(name) = &config.host {
- if !hostname_validator::is_valid(name) {
+ if !hostname_is_valid(name) {
return Err(Error::WrapperError(WrapperErrorKind::InvalidParam));
@@ -477,3 +494,3 @@
- if !hostname_validator::is_valid(config_str) {
+ if !hostname_is_valid(config_str) {
return Err(Error::WrapperError(WrapperErrorKind::InvalidParam));
|