diff --git a/src/domains.rs b/src/domains.rs index 4585284..df281a6 100644 --- a/src/domains.rs +++ b/src/domains.rs @@ -203,7 +203,7 @@ pub(crate) fn find_authority_end( fn valid_tld(tld: &str) -> bool { tld.chars() - .take_while(|c| c.is_ascii_alphabetic()) + .take_while(|c| c.is_ascii_alphanumeric()) .take(2) .count() >= 2 diff --git a/tests/domains.rs b/tests/domains.rs index f8c7f44..2535a60 100644 --- a/tests/domains.rs +++ b/tests/domains.rs @@ -191,3 +191,12 @@ fn assert_linked(input: &str, expected: &str) { fn assert_not_linked(s: &str) { assert_linked(s, s); } + +#[test] +fn i2p_valid() { + assert_linked( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.b32.i2p", + "|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.b32.i2p|", + ); + assert_linked("xxxx.i2p", "|xxxx.i2p|"); +}