diff options
author | initard <solo@softwareag.com> | 2022-06-24 13:20:11 +0100 |
---|---|---|
committer | initard <solo@softwareag.com> | 2022-06-24 15:10:54 +0100 |
commit | 35e15064810c79218d3e0a11989f4be1407c06c9 (patch) | |
tree | 2b05bace2c29b405dce4ba558e51368ad521e08b /plugins | |
parent | f32847174f7b89bf0083ea29f15857f31981aeab (diff) |
fixing configuration plugin panic when payload is wrong
Signed-off-by: initard <solo@softwareag.com>
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/c8y_configuration_plugin/src/main.rs | 53 |
1 files changed, 31 insertions, 22 deletions
diff --git a/plugins/c8y_configuration_plugin/src/main.rs b/plugins/c8y_configuration_plugin/src/main.rs index eb4b8272..96d2b020 100644 --- a/plugins/c8y_configuration_plugin/src/main.rs +++ b/plugins/c8y_configuration_plugin/src/main.rs @@ -151,31 +151,40 @@ async fn run( } else { match payload.split(',').next().unwrap_or_default() { "524" => { - let config_download_request = - SmartRestConfigDownloadRequest::from_smartrest(payload)?; - - handle_config_download_request( - &plugin_config, - config_download_request, - tmp_dir.clone(), - &mut mqtt_client, - http_client, - ) - .await + let maybe_config_download_request = + SmartRestConfigDownloadRequest::from_smartrest(payload); + if let Ok(config_download_request) = maybe_config_download_request { + handle_config_download_request( + &plugin_config, + config_download_request, + tmp_dir.clone(), + &mut mqtt_client, + http_client, + ) + .await + } else { + error!("Incorrect Download SmartREST payload: {}", payload); + Ok(()) + } } "526" => { // retrieve config file upload smartrest request from payload - let config_upload_request = - SmartRestConfigUploadRequest::from_smartrest(payload)?; - - // handle the config file upload request - handle_config_upload_request( - &plugin_config, - config_upload_request, - &mut mqtt_client, - http_client, - ) - .await + let maybe_config_upload_request = + SmartRestConfigUploadRequest::from_smartrest(payload); + + if let Ok(config_upload_request) = maybe_config_upload_request { + // handle the config file upload request + handle_config_upload_request( + &plugin_config, + config_upload_request, + &mut mqtt_client, + http_client, + ) + .await + } else { + error!("Incorrect Upload SmartREST payload: {}", payload); + Ok(()) + } } _ => { // Ignore operation messages not meant for this plugin |