File tree Expand file tree Collapse file tree 4 files changed +13
-5
lines changed Expand file tree Collapse file tree 4 files changed +13
-5
lines changed Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ use crate::convert::TryFrom;
7
7
use crate :: ffi:: c_void;
8
8
use crate :: fmt;
9
9
use crate :: fs;
10
+ use crate :: io;
10
11
use crate :: marker:: PhantomData ;
11
12
use crate :: mem:: forget;
12
13
use crate :: ptr:: NonNull ;
@@ -114,7 +115,7 @@ impl BorrowedHandle<'_> {
114
115
impl OwnedHandle {
115
116
/// Creates a new `OwnedHandle` instance that shares the same underlying file handle
116
117
/// as the existing `OwnedHandle` instance.
117
- pub fn try_clone ( & self ) -> crate :: io:: Result < FileDesc > {
118
+ pub fn try_clone ( & self ) -> crate :: io:: Result < Self > {
118
119
let handle = self . duplicate ( 0 , false , c:: DUPLICATE_SAME_ACCESS ) ?;
119
120
120
121
Ok ( unsafe { OwnedHandle :: from_raw_handle ( handle) } )
Original file line number Diff line number Diff line change 4
4
5
5
use super :: raw:: { AsRawSocket , FromRawSocket , IntoRawSocket , RawSocket } ;
6
6
use crate :: fmt;
7
+ use crate :: io;
7
8
use crate :: marker:: PhantomData ;
9
+ use crate :: mem;
8
10
use crate :: mem:: forget;
9
11
use crate :: sys:: c;
10
12
use crate :: sys:: cvt;
@@ -91,7 +93,7 @@ impl OwnedSocket {
91
93
} ;
92
94
93
95
if socket != c:: INVALID_SOCKET {
94
- unsafe { Ok ( Self :: from_inner ( OwnedSocket :: from_raw_socket ( socket) ) ) }
96
+ unsafe { Ok ( Self ( OwnedSocket :: from_raw_socket ( socket) ) ) }
95
97
} else {
96
98
let error = unsafe { c:: WSAGetLastError ( ) } ;
97
99
@@ -115,14 +117,19 @@ impl OwnedSocket {
115
117
}
116
118
117
119
unsafe {
118
- let socket = Self :: from_inner ( OwnedSocket :: from_raw_socket ( socket) ) ;
120
+ let socket = Self ( OwnedSocket :: from_raw_socket ( socket) ) ;
119
121
socket. set_no_inherit ( ) ?;
120
122
Ok ( socket)
121
123
}
122
124
}
123
125
}
124
126
}
125
127
128
+ /// Returns the last error from the Windows socket interface.
129
+ fn last_error ( ) -> io:: Error {
130
+ io:: Error :: from_raw_os_error ( unsafe { c:: WSAGetLastError ( ) } )
131
+ }
132
+
126
133
impl AsRawSocket for BorrowedSocket < ' _ > {
127
134
#[ inline]
128
135
fn as_raw_socket ( & self ) -> RawSocket {
Original file line number Diff line number Diff line change @@ -455,7 +455,7 @@ impl File {
455
455
}
456
456
457
457
pub fn duplicate ( & self ) -> io:: Result < File > {
458
- Ok ( Self ( self . 0 . try_clone ( ) ?) )
458
+ Ok ( Self { handle : self . handle . try_clone ( ) ? } )
459
459
}
460
460
461
461
fn reparse_point < ' a > (
Original file line number Diff line number Diff line change @@ -208,7 +208,7 @@ impl Socket {
208
208
}
209
209
210
210
pub fn duplicate ( & self ) -> io:: Result < Socket > {
211
- Ok ( Self ( self . 0 . duplicate ( ) ?) )
211
+ Ok ( Self ( self . 0 . try_clone ( ) ?) )
212
212
}
213
213
214
214
fn recv_with_flags ( & self , buf : & mut [ u8 ] , flags : c_int ) -> io:: Result < usize > {
You can’t perform that action at this time.
0 commit comments