Use the correct cvt for converting socket errors on Windows.
`WSADuplicateSocketW` returns 0 on success, which differs from handle-oriented functions which return 0 on error. Use `sys::net::cvt` to handle its return value, which handles the socket convention of returning 0 on success, rather than `sys::cvt`, which handles the handle-oriented convention of returning 0 on failure.
This commit is contained in:
parent
53e072f220
commit
83aebf8f7b
1 changed files with 2 additions and 1 deletions
|
|
@ -8,6 +8,7 @@ use crate::io;
|
|||
use crate::marker::PhantomData;
|
||||
use crate::mem;
|
||||
use crate::mem::forget;
|
||||
use crate::sys;
|
||||
use crate::sys::c;
|
||||
use crate::sys::cvt;
|
||||
|
||||
|
|
@ -80,7 +81,7 @@ impl OwnedSocket {
|
|||
let result = unsafe {
|
||||
c::WSADuplicateSocketW(self.as_raw_socket(), c::GetCurrentProcessId(), &mut info)
|
||||
};
|
||||
cvt(result)?;
|
||||
sys::net::cvt(result)?;
|
||||
let socket = unsafe {
|
||||
c::WSASocketW(
|
||||
info.iAddressFamily,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue