rust: Update tipc interface usage

Updated to reflect changes from aosp/2459409

Bug: 2459409
Change-Id: Icd9abbf21c4c6ff57695ad45183c8c482794e6da
diff --git a/ipc_manager.rs b/ipc_manager.rs
index 0d4a062..76ebe3f 100644
--- a/ipc_manager.rs
+++ b/ipc_manager.rs
@@ -37,8 +37,8 @@
 use log::{debug, error, info};
 use system_state::{ProvisioningAllowedFlagValues, SystemState, SystemStateFlag};
 use tipc::{
-    service_dispatcher, Deserialize, Handle, Manager, PortCfg, Serialize, Serializer, Service,
-    TipcError, Uuid,
+    service_dispatcher, ConnectResult, Deserialize, Handle, Manager, MessageResult, PortCfg,
+    Serialize, Serializer, Service, TipcError, Uuid,
 };
 use trusty_std::alloc::FallibleVec;
 use trusty_std::alloc::TryAllocFrom;
@@ -65,7 +65,7 @@
     type Error = TipcError;
     const MAX_SERIALIZED_SIZE: usize = KEYMINT_MAX_BUFFER_LENGTH;
 
-    fn deserialize(bytes: &[u8], _handles: &mut [Option<Handle>]) -> Result<Self, TipcError> {
+    fn deserialize(bytes: &[u8], _handles: &mut [Option<Handle>]) -> tipc::Result<Self> {
         Ok(KMMessage(Vec::try_alloc_from(bytes)?))
     }
 }
@@ -122,9 +122,9 @@
         _port: &PortCfg,
         _handle: &Handle,
         peer: &Uuid,
-    ) -> Result<Option<Self::Connection>, TipcError> {
+    ) -> tipc::Result<ConnectResult<Self::Connection>> {
         info!("Accepted connection from uuid {:?}.", peer);
-        Ok(Some(Context { uuid: peer.clone() }))
+        Ok(ConnectResult::Accept(Context { uuid: peer.clone() }))
     }
 
     fn on_message(
@@ -132,7 +132,7 @@
         _connection: &Self::Connection,
         handle: &Handle,
         msg: Self::Message,
-    ) -> Result<bool, TipcError> {
+    ) -> tipc::Result<MessageResult> {
         debug!("Received a message.");
         let resp_vec = self.handle_message(&msg.0).map_err(|e| match e {
             Error::Hal(_, err_msg) => {
@@ -148,7 +148,7 @@
         for resp in resp_vec {
             handle.send(&KMMessage(resp))?;
         }
-        Ok(true)
+        Ok(MessageResult::MaintainConnection)
     }
 }
 
@@ -389,9 +389,9 @@
         _port: &PortCfg,
         _handle: &Handle,
         peer: &Uuid,
-    ) -> Result<Option<Self::Connection>, TipcError> {
+    ) -> tipc::Result<ConnectResult<Self::Connection>> {
         info!("Accepted connection from uuid {:?}.", peer);
-        Ok(Some(Context { uuid: peer.clone() }))
+        Ok(ConnectResult::Accept(Context { uuid: peer.clone() }))
     }
 
     fn on_message(
@@ -399,7 +399,7 @@
         _connection: &Self::Connection,
         handle: &Handle,
         msg: Self::Message,
-    ) -> Result<bool, TipcError> {
+    ) -> tipc::Result<MessageResult> {
         debug!("Received legacy message.");
         let req_msg = legacy::deserialize_trusty_req(&msg.0).map_err(|e| {
             error!("Received error when parsing legacy message: {:?}", e);
@@ -425,7 +425,7 @@
             }
         };
         handle.send(&KMMessage(resp))?;
-        Ok(true)
+        Ok(MessageResult::MaintainConnection)
     }
 }
 
@@ -487,13 +487,13 @@
         _port: &PortCfg,
         _handle: &Handle,
         peer: &Uuid,
-    ) -> Result<Option<Self::Connection>, TipcError> {
+    ) -> tipc::Result<ConnectResult<Self::Connection>> {
         if !keymint_check_target_access_policy(peer) {
             error!("access policy rejected the uuid: {:?}", peer);
-            return Ok(None);
+            return Ok(ConnectResult::CloseConnection);
         }
         info!("Accepted connection from uuid {:?}.", peer);
-        Ok(Some(Context { uuid: peer.clone() }))
+        Ok(ConnectResult::Accept(Context { uuid: peer.clone() }))
     }
 
     fn on_message(
@@ -501,7 +501,7 @@
         connection: &Self::Connection,
         handle: &Handle,
         msg: Self::Message,
-    ) -> Result<bool, TipcError> {
+    ) -> tipc::Result<MessageResult> {
         debug!("Received secure message.");
 
         let req_msg = legacy::deserialize_trusty_secure_req(&msg.0).map_err(|e| {
@@ -513,7 +513,7 @@
             && !keymint_check_secure_target_access_policy_provisioning(&connection.uuid)
         {
             error!("access policy rejected the uuid: {:?}", &connection.uuid);
-            return Ok(false);
+            return Ok(MessageResult::CloseConnection);
         }
 
         let resp = match self.handle_message(req_msg) {
@@ -537,7 +537,7 @@
             }
         };
         handle.send(&KMMessage(resp))?;
-        Ok(true)
+        Ok(MessageResult::MaintainConnection)
     }
 }
 
@@ -757,7 +757,7 @@
         expect!(km_error_code.is_ok(), "Should be able to call SetAttestatonKeys");
     }
 
-    fn set_attestation_ids_secure() -> Result<(), TipcError> {
+    fn set_attestation_ids_secure() -> tipc::Result<()> {
         let port = CString::try_new(KM_SEC_TIPC_SRV_PORT).unwrap();
         let session = Handle::connect(port.as_c_str()).unwrap();