Skip to content

Commit 1bc1572

Browse files
committed
refactor(windows): update windows-sys version and improve socket flag handling
- Update windows-sys dependency from 0.60 to 0.61.2 - Replace manual bit calculations with c_int::BITS for better clarity - Simplify bitwise operations and remove redundant type casts - Use direct enum values instead of casting to i32 where possible
1 parent 9463a02 commit 1bc1572

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ features = ["all"]
5353
libc = "0.2.172"
5454

5555
[target.'cfg(windows)'.dependencies.windows-sys]
56-
version = "0.60"
56+
version = "0.61.2"
5757
features = [
5858
"Win32_Foundation",
5959
"Win32_Networking_WinSock",

src/sys/windows.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,9 @@ impl_debug!(
124124
impl Type {
125125
/// Our custom flag to set `WSA_FLAG_NO_HANDLE_INHERIT` on socket creation.
126126
/// Trying to mimic `Type::cloexec` on windows.
127-
const NO_INHERIT: c_int = 1 << ((size_of::<c_int>() * 8) - 1); // Last bit.
127+
const NO_INHERIT: c_int = 1 << ((c_int::BITS as usize) - 1); // Last bit.
128128
/// Our custom flag to set `WSA_FLAG_REGISTERED_IO` on socket creation.
129-
const REGISTERED_IO: c_int = 1 << ((size_of::<c_int>() * 8) - 2); // Second last bit.
129+
const REGISTERED_IO: c_int = 1 << ((c_int::BITS as usize) - 2); // Second last bit.
130130

131131
/// Set `WSA_FLAG_NO_HANDLE_INHERIT` on the socket.
132132
#[cfg(feature = "all")]
@@ -262,13 +262,13 @@ pub(crate) fn socket(family: c_int, mut ty: c_int, protocol: c_int) -> io::Resul
262262

263263
// Check if we set our custom flags.
264264
let flags = if ty & Type::NO_INHERIT != 0 {
265-
ty = ty & !Type::NO_INHERIT;
265+
ty &= !Type::NO_INHERIT;
266266
WSA_FLAG_NO_HANDLE_INHERIT
267267
} else {
268268
0
269269
};
270270
let flags = if ty & Type::REGISTERED_IO != 0 {
271-
ty = ty & !Type::REGISTERED_IO;
271+
ty &= !Type::REGISTERED_IO;
272272
flags | WSA_FLAG_REGISTERED_IO
273273
} else {
274274
flags
@@ -311,7 +311,7 @@ pub(crate) fn poll_connect(socket: &crate::Socket, timeout: Duration) -> io::Res
311311

312312
let mut fd_array = WSAPOLLFD {
313313
fd: socket.as_raw(),
314-
events: (POLLRDNORM | POLLWRNORM) as i16,
314+
events: (POLLRDNORM | POLLWRNORM),
315315
revents: 0,
316316
};
317317

@@ -332,8 +332,8 @@ pub(crate) fn poll_connect(socket: &crate::Socket, timeout: Duration) -> io::Res
332332
Ok(0) => return Err(io::ErrorKind::TimedOut.into()),
333333
Ok(_) => {
334334
// Error or hang up indicates an error (or failure to connect).
335-
if (fd_array.revents & POLLERR as i16) != 0
336-
|| (fd_array.revents & POLLHUP as i16) != 0
335+
if (fd_array.revents & POLLERR) != 0
336+
|| (fd_array.revents & POLLHUP) != 0
337337
{
338338
match socket.take_error() {
339339
Ok(Some(err)) => return Err(err),
@@ -449,7 +449,7 @@ pub(crate) fn shutdown(socket: RawSocket, how: Shutdown) -> io::Result<()> {
449449
Shutdown::Write => SD_SEND,
450450
Shutdown::Read => SD_RECEIVE,
451451
Shutdown::Both => SD_BOTH,
452-
} as i32;
452+
};
453453
syscall!(shutdown(socket, how), PartialEq::eq, SOCKET_ERROR).map(|_| ())
454454
}
455455

@@ -470,7 +470,7 @@ pub(crate) fn recv(
470470
);
471471
match res {
472472
Ok(n) => Ok(n as usize),
473-
Err(ref err) if err.raw_os_error() == Some(WSAESHUTDOWN as i32) => Ok(0),
473+
Err(ref err) if err.raw_os_error() == Some(WSAESHUTDOWN) => Ok(0),
474474
Err(err) => Err(err),
475475
}
476476
}
@@ -497,8 +497,8 @@ pub(crate) fn recv_vectored(
497497
);
498498
match res {
499499
Ok(_) => Ok((nread as usize, RecvFlags(0))),
500-
Err(ref err) if err.raw_os_error() == Some(WSAESHUTDOWN as i32) => Ok((0, RecvFlags(0))),
501-
Err(ref err) if err.raw_os_error() == Some(WSAEMSGSIZE as i32) => {
500+
Err(ref err) if err.raw_os_error() == Some(WSAESHUTDOWN) => Ok((0, RecvFlags(0))),
501+
Err(ref err) if err.raw_os_error() == Some(WSAEMSGSIZE) => {
502502
Ok((nread as usize, RecvFlags(MSG_TRUNC)))
503503
}
504504
Err(err) => Err(err),
@@ -527,7 +527,7 @@ pub(crate) fn recv_from(
527527
);
528528
match res {
529529
Ok(n) => Ok(n as usize),
530-
Err(ref err) if err.raw_os_error() == Some(WSAESHUTDOWN as i32) => Ok(0),
530+
Err(ref err) if err.raw_os_error() == Some(WSAESHUTDOWN) => Ok(0),
531531
Err(err) => Err(err),
532532
}
533533
})
@@ -554,7 +554,7 @@ pub(crate) fn peek_sender(socket: RawSocket) -> io::Result<SockAddr> {
554554
match res {
555555
Ok(_n) => Ok(()),
556556
Err(e) => match e.raw_os_error() {
557-
Some(code) if code == (WSAESHUTDOWN as i32) || code == (WSAEMSGSIZE as i32) => {
557+
Some(code) if code == WSAESHUTDOWN || code == WSAEMSGSIZE => {
558558
Ok(())
559559
}
560560
_ => Err(e),
@@ -593,10 +593,10 @@ pub(crate) fn recv_from_vectored(
593593
);
594594
match res {
595595
Ok(_) => Ok((nread as usize, RecvFlags(0))),
596-
Err(ref err) if err.raw_os_error() == Some(WSAESHUTDOWN as i32) => {
596+
Err(ref err) if err.raw_os_error() == Some(WSAESHUTDOWN) => {
597597
Ok((nread as usize, RecvFlags(0)))
598598
}
599-
Err(ref err) if err.raw_os_error() == Some(WSAEMSGSIZE as i32) => {
599+
Err(ref err) if err.raw_os_error() == Some(WSAEMSGSIZE) => {
600600
Ok((nread as usize, RecvFlags(MSG_TRUNC)))
601601
}
602602
Err(err) => Err(err),
@@ -734,7 +734,7 @@ fn from_ms(duration: u32) -> Option<Duration> {
734734
} else {
735735
let secs = duration / 1000;
736736
let nsec = (duration % 1000) * 1000000;
737-
Some(Duration::new(secs as u64, nsec as u32))
737+
Some(Duration::new(secs as u64, nsec))
738738
}
739739
}
740740

@@ -806,7 +806,7 @@ pub(crate) unsafe fn getsockopt<T>(socket: RawSocket, level: c_int, optname: i32
806806
syscall!(
807807
getsockopt(
808808
socket,
809-
level as i32,
809+
level,
810810
optname,
811811
optval.as_mut_ptr().cast(),
812812
&mut optlen,
@@ -832,7 +832,7 @@ pub(crate) unsafe fn setsockopt<T>(
832832
syscall!(
833833
setsockopt(
834834
socket,
835-
level as i32,
835+
level,
836836
optname,
837837
(&optval as *const T).cast(),
838838
mem::size_of::<T>() as c_int,

0 commit comments

Comments
 (0)