Use sockaddr_vm instead of VsockAddr for libbinder
Removing libnix from libbinder so clients need to use the
libc::sockaddr_vm.
Test: atest vm_accessor_test
Bug: na
Change-Id: Ib2478d21444206416f1bd606cdc73260eae1c25f
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 23652d2..52bfd87 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -67,6 +67,7 @@
};
use cstr::cstr;
use glob::glob;
+use libc::{AF_VSOCK, sa_family_t, sockaddr_vm};
use log::{debug, error, info, warn};
use microdroid_payload_config::{ApkConfig, Task, TaskType, VmPayloadConfig};
use nix::unistd::pipe;
@@ -89,7 +90,7 @@
use std::sync::{Arc, Mutex, Weak, LazyLock};
use vbmeta::VbMetaImage;
use vmconfig::{VmConfig, get_debug_level};
-use vsock::{VsockAddr, VsockStream};
+use vsock::VsockStream;
use zip::ZipArchive;
/// The unique ID of a VM used (together with a port number) for vsock communication.
@@ -1434,8 +1435,14 @@
));
}
let cid = self.instance.cid;
- let get_connection_info =
- move |_instance: &str| Some(ConnectionInfo::Vsock(VsockAddr::new(cid, port)));
+ let addr = sockaddr_vm {
+ svm_family: AF_VSOCK as sa_family_t,
+ svm_reserved1: 0,
+ svm_port: port,
+ svm_cid: cid,
+ svm_zero: [0u8; 4],
+ };
+ let get_connection_info = move |_instance: &str| Some(ConnectionInfo::Vsock(addr));
let accessor = Accessor::new(name, get_connection_info);
accessor
.as_binder()