diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-03-23 20:51:52 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-03-23 20:51:52 +0000 |
commit | 204dff8fe3b262ef43d695d94ff05d7eb3130a50 (patch) | |
tree | 6568264214021f58808210f4dd283a07bafebfbf | |
parent | 34c25bb318dc916018e33e50b1fec97323b38532 (diff) | |
parent | d20063e65cebf5d8014d1b311e996e4426805d20 (diff) | |
download | vsock-204dff8fe3b262ef43d695d94ff05d7eb3130a50.tar.gz |
Snap for 8346638 from d20063e65cebf5d8014d1b311e996e4426805d20 to mainline-go-art-release
Change-Id: Iedd42a570e887353e9812c2d455a5a76c46b5192
-rw-r--r-- | .cargo_vcs_info.json | 2 | ||||
-rw-r--r-- | Android.bp | 15 | ||||
-rw-r--r-- | Cargo.toml | 13 | ||||
-rw-r--r-- | Cargo.toml.orig | 4 | ||||
-rw-r--r-- | METADATA | 10 | ||||
-rw-r--r-- | README.android | 3 | ||||
-rw-r--r-- | TEST_MAPPING | 19 | ||||
-rw-r--r-- | cargo2android.json | 9 | ||||
-rw-r--r-- | src/lib.rs | 32 | ||||
-rw-r--r-- | tests/vsock.rs | 7 |
10 files changed, 31 insertions, 83 deletions
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json index 3d9568d..c3a6da8 100644 --- a/.cargo_vcs_info.json +++ b/.cargo_vcs_info.json @@ -1,5 +1,5 @@ { "git": { - "sha1": "9b5e180bf04fd1d02db0c1e79c5ddd838dd42328" + "sha1": "c24bde75d75afb29563cc465f4c3e2cedfea69b9" } } @@ -1,5 +1,4 @@ -// This file is generated by cargo2android.py --config cargo2android.json. -// Do not modify this file as changes will be overridden on upgrade. +// This file is generated by cargo2android.py --run --device --dependencies. package { default_applicable_licenses: ["external_rust_crates_vsock_license"], @@ -22,16 +21,16 @@ rust_library { name: "libvsock", host_supported: true, crate_name: "vsock", - cargo_env_compat: true, - cargo_pkg_version: "0.2.6", srcs: ["src/lib.rs"], edition: "2018", rustlibs: [ "liblibc", "libnix", ], - apex_available: [ - "//apex_available:platform", - "com.android.virt", - ], } + +// dependent_library ["feature_list"] +// bitflags-1.2.1 "default" +// cfg-if-1.0.0 +// libc-0.2.86 "default,extra_traits,std" +// nix-0.19.1 @@ -3,16 +3,17 @@ # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies -# to registry (e.g., crates.io) dependencies. +# to registry (e.g., crates.io) dependencies # -# If you are reading this file be aware that the original Cargo.toml -# will likely look very different (and much more reasonable). -# See Cargo.toml.orig for the original contents. +# If you believe there's an error in this file please file an +# issue against the rust-lang/cargo repository. If you're +# editing this file be aware that the upstream Cargo.toml +# will likely look very different (and much more reasonable) [package] edition = "2018" name = "vsock" -version = "0.2.6" +version = "0.2.3" authors = ["fsyncd", "rust-vsock"] exclude = ["test_fixture"] description = "Virtio socket support for Rust" @@ -24,7 +25,7 @@ repository = "https://github.com/rust-vsock/vsock-rs" version = "0.2.79" [dependencies.nix] -version = "0.23.0" +version = "0.19.1" [dev-dependencies.rand] version = "0.8.3" diff --git a/Cargo.toml.orig b/Cargo.toml.orig index 7a6d39a..afe8103 100644 --- a/Cargo.toml.orig +++ b/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "vsock" -version = "0.2.6" +version = "0.2.3" authors = ["fsyncd", "rust-vsock"] description = "Virtio socket support for Rust" repository = "https://github.com/rust-vsock/vsock-rs" @@ -12,7 +12,7 @@ exclude = ["test_fixture"] [dependencies] libc = "0.2.79" -nix = "0.23.0" +nix = "0.19.1" [dev-dependencies] rand = "0.8.3" @@ -7,13 +7,13 @@ third_party { } url { type: ARCHIVE - value: "https://static.crates.io/crates/vsock/vsock-0.2.6.crate" + value: "https://static.crates.io/crates/vsock/vsock-0.2.3.crate" } - version: "0.2.6" + version: "0.2.3" license_type: NOTICE last_upgrade_date { - year: 2022 - month: 3 - day: 1 + year: 2021 + month: 2 + day: 9 } } diff --git a/README.android b/README.android new file mode 100644 index 0000000..2ca244b --- /dev/null +++ b/README.android @@ -0,0 +1,3 @@ +local_modifications: + "Cherry-picked https://github.com/qwandor/vsock-rs/commit/4f73c26fc9a95e36e3ac4d304a02b6a424d7bcfd to fix Android build. This should be included in the next upstream release." + See patches/src.lib.diff diff --git a/TEST_MAPPING b/TEST_MAPPING deleted file mode 100644 index b7c1df9..0000000 --- a/TEST_MAPPING +++ /dev/null @@ -1,19 +0,0 @@ -// Generated by update_crate_tests.py for tests that depend on this crate. -{ - "presubmit": [ - { - "name": "microdroid_manager_test" - }, - { - "name": "virtualizationservice_device_test" - } - ], - "presubmit-rust": [ - { - "name": "microdroid_manager_test" - }, - { - "name": "virtualizationservice_device_test" - } - ] -} diff --git a/cargo2android.json b/cargo2android.json deleted file mode 100644 index 42b7833..0000000 --- a/cargo2android.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "apex-available": [ - "//apex_available:platform", - "com.android.virt" - ], - "dependencies": true, - "device": true, - "run": true -}
\ No newline at end of file @@ -17,17 +17,15 @@ //! Virtio socket support for Rust. -use libc::*; -use nix::ioctl_read_bad; -use std::ffi::c_void; -use std::fs::File; use std::io::{Error, ErrorKind, Read, Result, Write}; use std::mem::{self, size_of}; -use std::net::Shutdown; use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, RawFd}; + +use libc::*; +use std::ffi::c_void; +use std::net::Shutdown; use std::time::Duration; -pub use libc::{VMADDR_CID_ANY, VMADDR_CID_HOST, VMADDR_CID_HYPERVISOR, VMADDR_CID_LOCAL}; pub use nix::sys::socket::{SockAddr, VsockAddr}; fn new_socket() -> libc::c_int { @@ -136,11 +134,10 @@ impl VsockListener { }; let mut vsock_addr_len = size_of::<sockaddr_vm>() as socklen_t; let socket = unsafe { - accept4( + accept( self.socket, &mut vsock_addr as *mut _ as *mut sockaddr, &mut vsock_addr_len, - SOCK_CLOEXEC, ) }; if socket < 0 { @@ -507,22 +504,3 @@ impl Drop for VsockStream { unsafe { close(self.socket) }; } } - -const IOCTL_VM_SOCKETS_GET_LOCAL_CID: usize = 0x7b9; -ioctl_read_bad!( - vm_sockets_get_local_cid, - IOCTL_VM_SOCKETS_GET_LOCAL_CID, - u32 -); - -/// Gets the CID of the local machine. -/// -/// Note that when calling [`VsockListener::bind`], you should generally use [`VMADDR_CID_ANY`] -/// instead, and for making a loopback connection you should use [`VMADDR_CID_LOCAL`]. -pub fn get_local_cid() -> Result<u32> { - let f = File::open("/dev/vsock")?; - let mut cid = 0; - // SAFETY: the kernel only modifies the given u32 integer. - unsafe { vm_sockets_get_local_cid(f.as_raw_fd(), &mut cid) }?; - Ok(cid) -} diff --git a/tests/vsock.rs b/tests/vsock.rs index 52d908b..d51bad0 100644 --- a/tests/vsock.rs +++ b/tests/vsock.rs @@ -17,7 +17,7 @@ use rand::RngCore; use sha2::{Digest, Sha256}; use std::io::{Read, Write}; -use vsock::{get_local_cid, SockAddr, VsockAddr, VsockStream, VMADDR_CID_HOST}; +use vsock::{SockAddr, VsockAddr, VsockStream}; const TEST_BLOB_SIZE: usize = 1_000_000; const TEST_BLOCK_SIZE: usize = 5_000; @@ -67,8 +67,3 @@ fn test_vsock() { assert_eq!(expected, actual); } - -#[test] -fn test_get_local_cid() { - assert_eq!(get_local_cid().unwrap(), VMADDR_CID_HOST); -} |