Skip to content

Commit d5fb695

Browse files
committed
Fix windows socket
1 parent a23e99c commit d5fb695

File tree

3 files changed

+7
-15
lines changed

3 files changed

+7
-15
lines changed

Lib/test/test_selectors.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,6 @@ def test_unregister_after_fd_close_and_reuse(self):
131131
s.unregister(r)
132132
s.unregister(w)
133133

134-
# TODO: RUSTPYTHON
135-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON")
136134
def test_unregister_after_socket_close(self):
137135
s = self.SELECTOR()
138136
self.addCleanup(s.close)

Lib/test/test_socketserver.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,11 @@ def dgram_examine(self, proto, addr):
178178
buf += data
179179
self.assertEqual(buf, TEST_STR)
180180

181-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON; AssertionError: -1 != 18446744073709551615")
182181
def test_TCPServer(self):
183182
self.run_server(socketserver.TCPServer,
184183
socketserver.StreamRequestHandler,
185184
self.stream_examine)
186185

187-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON; AssertionError: -1 != 18446744073709551615")
188186
def test_ThreadingTCPServer(self):
189187
self.run_server(socketserver.ThreadingTCPServer,
190188
socketserver.StreamRequestHandler,
@@ -217,13 +215,11 @@ def test_ForkingUnixStreamServer(self):
217215
socketserver.StreamRequestHandler,
218216
self.stream_examine)
219217

220-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON; AssertionError: -1 != 18446744073709551615")
221218
def test_UDPServer(self):
222219
self.run_server(socketserver.UDPServer,
223220
socketserver.DatagramRequestHandler,
224221
self.dgram_examine)
225222

226-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON; AssertionError: -1 != 18446744073709551615")
227223
def test_ThreadingUDPServer(self):
228224
self.run_server(socketserver.ThreadingUDPServer,
229225
socketserver.DatagramRequestHandler,
@@ -298,7 +294,6 @@ def test_tcpserver_bind_leak(self):
298294
socketserver.TCPServer((HOST, -1),
299295
socketserver.StreamRequestHandler)
300296

301-
@unittest.expectedFailureIfWindows("TODO: RUSTPYTHON; AssertionError: -1 != 18446744073709551615")
302297
def test_context_manager(self):
303298
with socketserver.TCPServer((HOST, 0),
304299
socketserver.StreamRequestHandler) as server:

crates/stdlib/src/socket.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,8 +1065,7 @@ mod _socket {
10651065
fn repr_str(zelf: &Py<Self>, _vm: &VirtualMachine) -> PyResult<String> {
10661066
Ok(format!(
10671067
"<socket object, fd={}, family={}, type={}, proto={}>",
1068-
// cast because INVALID_SOCKET is unsigned, so would show usize::MAX instead of -1
1069-
zelf.fileno() as i64,
1068+
zelf.fileno(),
10701069
zelf.family.load(),
10711070
zelf.kind.load(),
10721071
zelf.proto.load(),
@@ -1462,25 +1461,25 @@ mod _socket {
14621461
#[pymethod]
14631462
fn close(&self) -> io::Result<()> {
14641463
let sock = self.detach();
1465-
if sock != INVALID_SOCKET {
1466-
close_inner(sock)?;
1464+
if sock != INVALID_SOCKET as i64 {
1465+
close_inner(sock as RawSocket)?;
14671466
}
14681467
Ok(())
14691468
}
14701469

14711470
#[pymethod]
14721471
#[inline]
1473-
fn detach(&self) -> RawSocket {
1472+
fn detach(&self) -> i64 {
14741473
let sock = self.sock.write().take();
1475-
sock.map_or(INVALID_SOCKET, into_sock_fileno)
1474+
sock.map_or(INVALID_SOCKET as i64, |s| into_sock_fileno(s) as i64)
14761475
}
14771476

14781477
#[pymethod]
1479-
fn fileno(&self) -> RawSocket {
1478+
fn fileno(&self) -> i64 {
14801479
self.sock
14811480
.read()
14821481
.as_ref()
1483-
.map_or(INVALID_SOCKET, sock_fileno)
1482+
.map_or(INVALID_SOCKET as i64, |s| sock_fileno(s) as i64)
14841483
}
14851484

14861485
#[pymethod]

0 commit comments

Comments
 (0)