Skip to content

Commit edc11a7

Browse files
authored
Merge pull request #189 from jsturtevant/bump-deps
Update dependencies for the main ttrpc project
2 parents 6d8517a + fee3e00 commit edc11a7

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ description = "A Rust version of ttrpc."
1313
[dependencies]
1414
protobuf = { version = "3.1.0" }
1515
libc = { version = "0.2.59", features = [ "extra_traits" ] }
16-
nix = "0.23.0"
16+
nix = "0.26.2"
1717
log = "0.4"
1818
byteorder = "1.3.2"
1919
thiserror = "1.0"
@@ -22,10 +22,10 @@ tokio = { version = "1", features = ["rt", "sync", "io-util", "macros", "time"],
2222
futures = { version = "0.3", optional = true }
2323

2424
[target.'cfg(windows)'.dependencies]
25-
windows-sys = {version = "0.45", features = [ "Win32_Foundation", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Pipes", "Win32_Security", "Win32_System_Threading"]}
25+
windows-sys = {version = "0.48", features = [ "Win32_Foundation", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Pipes", "Win32_Security", "Win32_System_Threading"]}
2626

2727
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
28-
tokio-vsock = { version = "0.3.1", optional = true }
28+
tokio-vsock = { version = "0.4.0", optional = true }
2929

3030
[build-dependencies]
3131
protobuf-codegen = "3.1.0"

src/common.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -100,24 +100,23 @@ fn make_addr(_domain: Domain, sockaddr: &str) -> Result<UnixAddr> {
100100
UnixAddr::new(sockaddr).map_err(err_to_others_err!(e, ""))
101101
}
102102

103-
fn make_socket(addr: (&str, u32)) -> Result<(RawFd, Domain, SockAddr)> {
103+
fn make_socket(addr: (&str, u32)) -> Result<(RawFd, Domain, Box<dyn SockaddrLike>)> {
104104
let (sockaddr, _) = addr;
105105
let (domain, sockaddrv) = parse_sockaddr(sockaddr)?;
106106

107-
let get_sock_addr = |domain, sockaddr| -> Result<(RawFd, SockAddr)> {
107+
let get_sock_addr = |domain, sockaddr| -> Result<(RawFd, Box<dyn SockaddrLike>)> {
108108
let fd = socket(AddressFamily::Unix, SockType::Stream, SOCK_CLOEXEC, None)
109109
.map_err(|e| Error::Socket(e.to_string()))?;
110110

111111
// MacOS doesn't support atomic creation of a socket descriptor with SOCK_CLOEXEC flag,
112112
// so there is a chance of leak if fork + exec happens in between of these calls.
113113
#[cfg(target_os = "macos")]
114114
set_fd_close_exec(fd)?;
115-
116-
let sockaddr = SockAddr::Unix(make_addr(domain, sockaddr)?);
117-
Ok((fd, sockaddr))
115+
let sockaddr = make_addr(domain, sockaddr)?;
116+
Ok((fd, Box::new(sockaddr)))
118117
};
119118

120-
let (fd, sockaddr) = match domain {
119+
let (fd, sockaddr): (i32, Box<dyn SockaddrLike>) = match domain {
121120
Domain::Unix => get_sock_addr(domain, sockaddrv)?,
122121
#[cfg(any(target_os = "linux", target_os = "android"))]
123122
Domain::Vsock => {
@@ -138,8 +137,8 @@ fn make_socket(addr: (&str, u32)) -> Result<(RawFd, Domain, SockAddr)> {
138137
)
139138
.map_err(|e| Error::Socket(e.to_string()))?;
140139
let cid = addr.1;
141-
let sockaddr = SockAddr::new_vsock(cid, port);
142-
(fd, sockaddr)
140+
let sockaddr = VsockAddr::new(cid, port);
141+
(fd, Box::new(sockaddr))
143142
}
144143
};
145144

@@ -160,7 +159,7 @@ pub(crate) fn do_bind(sockaddr: &str) -> Result<(RawFd, Domain)> {
160159
let (fd, domain, sockaddr) = make_socket((sockaddr, VMADDR_CID_ANY))?;
161160

162161
setsockopt(fd, sockopt::ReusePort, &true)?;
163-
bind(fd, &sockaddr).map_err(err_to_others_err!(e, ""))?;
162+
bind(fd, sockaddr.as_ref()).map_err(err_to_others_err!(e, ""))?;
164163

165164
Ok((fd, domain))
166165
}
@@ -169,7 +168,7 @@ pub(crate) fn do_bind(sockaddr: &str) -> Result<(RawFd, Domain)> {
169168
pub(crate) unsafe fn client_connect(sockaddr: &str) -> Result<RawFd> {
170169
let (fd, _, sockaddr) = make_socket((sockaddr, VMADDR_CID_HOST))?;
171170

172-
connect(fd, &sockaddr)?;
171+
connect(fd, sockaddr.as_ref())?;
173172

174173
Ok(fd)
175174
}

0 commit comments

Comments
 (0)