@@ -4274,6 +4274,7 @@ pub fn connect(sock: socket_t, sock_addr: *const sockaddr, len: socklen_t) Conne
4274
4274
const rc = windows .ws2_32 .connect (sock , sock_addr , @intCast (len ));
4275
4275
if (rc == 0 ) return ;
4276
4276
switch (windows .ws2_32 .WSAGetLastError ()) {
4277
+ .WSAEISCONN = > return ,
4277
4278
.WSAEADDRINUSE = > return error .AddressInUse ,
4278
4279
.WSAEADDRNOTAVAIL = > return error .AddressNotAvailable ,
4279
4280
.WSAECONNREFUSED = > return error .ConnectionRefused ,
@@ -4284,9 +4285,9 @@ pub fn connect(sock: socket_t, sock_addr: *const sockaddr, len: socklen_t) Conne
4284
4285
= > return error .NetworkUnreachable ,
4285
4286
.WSAEFAULT = > unreachable ,
4286
4287
.WSAEINVAL = > unreachable ,
4287
- .WSAEISCONN = > unreachable ,
4288
4288
.WSAENOTSOCK = > unreachable ,
4289
4289
.WSAEWOULDBLOCK = > return error .WouldBlock ,
4290
+ .WSAEALREADY = > return error .ConnectionPending ,
4290
4291
.WSAEACCES = > unreachable ,
4291
4292
.WSAENOBUFS = > return error .SystemResources ,
4292
4293
.WSAEAFNOSUPPORT = > return error .AddressFamilyNotSupported ,
@@ -4298,6 +4299,7 @@ pub fn connect(sock: socket_t, sock_addr: *const sockaddr, len: socklen_t) Conne
4298
4299
while (true ) {
4299
4300
switch (errno (system .connect (sock , sock_addr , len ))) {
4300
4301
.SUCCESS = > return ,
4302
+ .ISCONN = > return ,
4301
4303
.ACCES = > return error .AccessDenied ,
4302
4304
.PERM = > return error .PermissionDenied ,
4303
4305
.ADDRINUSE = > return error .AddressInUse ,
@@ -4310,7 +4312,6 @@ pub fn connect(sock: socket_t, sock_addr: *const sockaddr, len: socklen_t) Conne
4310
4312
.CONNRESET = > return error .ConnectionResetByPeer ,
4311
4313
.FAULT = > unreachable , // The socket structure address is outside the user's address space.
4312
4314
.INTR = > continue ,
4313
- .ISCONN = > unreachable , // The socket is already connected.
4314
4315
.HOSTUNREACH = > return error .NetworkUnreachable ,
4315
4316
.NETUNREACH = > return error .NetworkUnreachable ,
4316
4317
.NOTSOCK = > unreachable , // The file descriptor sockfd does not refer to a socket.
0 commit comments