mirror of
				https://github.com/meilisearch/meilisearch.git
				synced 2025-10-31 16:06:31 +00:00 
			
		
		
		
	Use url::Url::parse to check the url
				
					
				
			This commit is contained in:
		| @@ -119,10 +119,22 @@ pub struct Network { | ||||
| impl Remote { | ||||
|     pub fn try_into_db_node(self, name: &str) -> Result<DbRemote, ResponseError> { | ||||
|         Ok(DbRemote { | ||||
|             url: self.url.set().ok_or(ResponseError::from_msg( | ||||
|                 format!("Missing field `.remotes.{name}.url`"), | ||||
|                 meilisearch_types::error::Code::MissingNetworkUrl, | ||||
|             ))?, | ||||
|             url: self | ||||
|                 .url | ||||
|                 .set() | ||||
|                 .ok_or(ResponseError::from_msg( | ||||
|                     format!("Missing field `.remotes.{name}.url`"), | ||||
|                     meilisearch_types::error::Code::MissingNetworkUrl, | ||||
|                 )) | ||||
|                 .and_then(|url| { | ||||
|                     if let Err(error) = url::Url::parse(&url) { | ||||
|                         return Err(ResponseError::from_msg( | ||||
|                             format!("Invalid `.remotes.{name}.url` (`{url}`): {error}"), | ||||
|                             meilisearch_types::error::Code::InvalidNetworkUrl, | ||||
|                         )); | ||||
|                     } | ||||
|                     Ok(url) | ||||
|                 })?, | ||||
|             search_api_key: self.search_api_key.set(), | ||||
|         }) | ||||
|     } | ||||
| @@ -212,11 +224,9 @@ async fn patch_network( | ||||
|                         let merged = DbRemote { | ||||
|                             url: match new_url { | ||||
|                                 Setting::Set(new_url) => { | ||||
|                                     if !new_url.starts_with("http://") | ||||
|                                         && !new_url.starts_with("https://") | ||||
|                                     { | ||||
|                                     if let Err(error) = url::Url::parse(&new_url) { | ||||
|                                         return Err(ResponseError::from_msg( | ||||
|                                             format!("in .remotes.{key}.url: error from Url::parse"), | ||||
|                                             format!("Invalid `.remotes.{key}.url` (`{new_url}`): {error}"), | ||||
|                                             meilisearch_types::error::Code::InvalidNetworkUrl, | ||||
|                                         )); | ||||
|                                     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user