@@ -9,7 +9,7 @@ use tokio::sync::OnceCell;
99#[ cfg( feature = "py" ) ]
1010mod python;
1111
12- const CLOUDCHECK_SIGNATURE_URL : & str = "https://raw.githubusercontent.com/blacklanternsecurity/cloudcheck/refs/heads/cloudcheck-v8 /cloud_providers_v2.json" ;
12+ const CLOUDCHECK_SIGNATURE_URL : & str = "https://raw.githubusercontent.com/blacklanternsecurity/cloudcheck/refs/heads/stable /cloud_providers_v2.json" ;
1313
1414#[ derive( Debug , Clone , Serialize , Deserialize ) ]
1515pub struct CloudProvider {
@@ -104,7 +104,7 @@ impl CloudCheck {
104104 let providers_data: HashMap < String , ProviderData > =
105105 serde_json:: from_str ( & json_data) ?;
106106
107- let mut radix = RadixTarget :: new ( & [ ] , ScopeMode :: Normal ) ;
107+ let mut radix = RadixTarget :: new ( & [ ] , ScopeMode :: Normal ) ? ;
108108 let mut providers_map: HashMap < String , Vec < CloudProvider > > = HashMap :: new ( ) ;
109109
110110 for ( _, provider) in providers_data {
@@ -116,7 +116,14 @@ impl CloudCheck {
116116 for cidr in provider. cidrs {
117117 let normalized = match radix. get ( & cidr) {
118118 Some ( n) => n,
119- None => radix. insert ( & cidr) . unwrap ( ) ,
119+ None => match radix. insert ( & cidr) {
120+ Ok ( Some ( n) ) => n,
121+ Ok ( None ) => continue ,
122+ Err ( e) => {
123+ eprintln ! ( "Error inserting CIDR '{}': {}" , cidr, e) ;
124+ continue ;
125+ }
126+ } ,
120127 } ;
121128 providers_map
122129 . entry ( normalized. clone ( ) )
@@ -125,9 +132,23 @@ impl CloudCheck {
125132 }
126133
127134 for domain in provider. domains {
128- let normalized = match radix. get ( & domain) {
135+ // Clean domain: strip comments (everything after #) and trim whitespace
136+ let cleaned_domain = domain. split ( '#' ) . next ( ) . unwrap_or ( & domain) . trim ( ) ;
137+
138+ if cleaned_domain. is_empty ( ) {
139+ continue ;
140+ }
141+
142+ let normalized = match radix. get ( cleaned_domain) {
129143 Some ( n) => n,
130- None => radix. insert ( & domain) . unwrap ( ) ,
144+ None => match radix. insert ( cleaned_domain) {
145+ Ok ( Some ( n) ) => n,
146+ Ok ( None ) => continue ,
147+ Err ( e) => {
148+ eprintln ! ( "Error inserting domain '{}': {}" , cleaned_domain, e) ;
149+ continue ;
150+ }
151+ } ,
131152 } ;
132153 providers_map
133154 . entry ( normalized. clone ( ) )
0 commit comments