Merge "Fix error handling in aconfigd-system" into main am: c520d748f3

Original change: https://android-review.googlesource.com/c/platform/system/server_configurable_flags/+/3378361

Change-Id: I240c33ba845bf9f9e9dee5c6aefbf97adecb8257
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/aconfigd/libcxx_aconfigd.cpp b/aconfigd/libcxx_aconfigd.cpp
index 0256b66..d5e1d46 100644
--- a/aconfigd/libcxx_aconfigd.cpp
+++ b/aconfigd/libcxx_aconfigd.cpp
@@ -75,10 +75,8 @@
     auto* return_msg = return_messages.add_msgs();
     auto result = impl->m_aconfigd->HandleSocketRequest(request, *return_msg);
     if (!result.ok()) {
-      CppStringResult cpp_result;
-      cpp_result.status = CppResultStatus::Err;
-      cpp_result.error_message = result.error().message();
-      return cpp_result;
+      auto* errmsg = return_msg->mutable_error_message();
+      *errmsg = result.error().message();
     }
   }
 
diff --git a/aconfigd/src/aconfigd_commands.rs b/aconfigd/src/aconfigd_commands.rs
index 05e7bb5..a82a8a9 100644
--- a/aconfigd/src/aconfigd_commands.rs
+++ b/aconfigd/src/aconfigd_commands.rs
@@ -75,27 +75,21 @@
                     let mut message_buffer = vec![0u8; message_length as usize];
                     stream.read_exact(&mut message_buffer)?;
 
-                    let response_buffer = match aconfigd.handle_socket_request(&message_buffer) {
-                        Ok(response) => response,
+                    match aconfigd.handle_socket_request(&message_buffer) {
+                        Ok(response_buffer) => {
+                            let mut response_length_buffer: [u8; 4] = [0; 4];
+                            let response_size = &response_buffer.len();
+                            response_length_buffer[0] = (response_size >> 24) as u8;
+                            response_length_buffer[1] = (response_size >> 16) as u8;
+                            response_length_buffer[2] = (response_size >> 8) as u8;
+                            response_length_buffer[3] = *response_size as u8;
+                            stream.write_all(&response_length_buffer)?;
+                            stream.write_all(&response_buffer)?;
+                        }
                         Err(e) => {
                             error!("failed to process socket request: {e}");
-                            let mut return_msg = ProtoStorageReturnMessage::new();
-                            return_msg.set_error_message(format!(
-                                "failed to handle socket request: {:?}",
-                                e
-                            ));
-                            protobuf::Message::write_to_bytes(&return_msg)?
                         }
                     };
-
-                    let mut response_length_buffer: [u8; 4] = [0; 4];
-                    let response_size = &response_buffer.len();
-                    response_length_buffer[0] = (response_size >> 24) as u8;
-                    response_length_buffer[1] = (response_size >> 16) as u8;
-                    response_length_buffer[2] = (response_size >> 8) as u8;
-                    response_length_buffer[3] = *response_size as u8;
-                    stream.write_all(&response_length_buffer)?;
-                    stream.write_all(&response_buffer)?;
                 }
                 Err(errmsg) => {
                     error!("failed to listen for an incoming message: {:?}", errmsg);