Skip to content

Commit 0ac4198

Browse files
committed
Fix socket.accept
1 parent dc150c2 commit 0ac4198

File tree

1 file changed

+6
-5
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/socket

1 file changed

+6
-5
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/socket/SocketBuiltins.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
import java.io.IOException;
4949
import java.net.InetAddress;
5050
import java.net.InetSocketAddress;
51-
import java.net.SocketAddress;
5251
import java.nio.ByteBuffer;
5352
import java.nio.channels.NotYetConnectedException;
5453
import java.nio.channels.ServerSocketChannel;
@@ -129,16 +128,18 @@ Object accept(PSocket socket) {
129128
if (acceptSocket == null) {
130129
throw raiseOSError(null, OSErrorEnum.EWOULDBLOCK);
131130
}
132-
SocketAddress addr = acceptSocket.getLocalAddress();
133-
if (!acceptSocket.socket().isBound() || addr == null) {
131+
InetSocketAddress remoteAddress = (InetSocketAddress) acceptSocket.getRemoteAddress();
132+
if (!acceptSocket.socket().isBound() || remoteAddress == null) {
134133
throw raise(OSError);
135134
}
136135
PSocket newSocket = factory().createSocket(socket.getFamily(), socket.getType(), socket.getProto());
137136
int fd = getContext().getResources().openSocket(newSocket);
138137
newSocket.setFileno(fd);
139138
newSocket.setSocket(acceptSocket);
140-
Object[] output = {fd, ((InetSocketAddress) addr).getAddress().getHostAddress()};
141-
return factory().createTuple(output);
139+
SocketUtils.setBlocking(newSocket, socket.isBlocking());
140+
newSocket.setTimeout(socket.getTimeout());
141+
PTuple addressTuple = factory().createTuple(new Object[]{remoteAddress.getAddress().getHostAddress(), remoteAddress.getPort()});
142+
return factory().createTuple(new Object[]{fd, addressTuple});
142143
} catch (IOException e) {
143144
throw raise(OSError);
144145
}

0 commit comments

Comments
 (0)