parent
ea4917d4d0
commit
9d6b34c73a
|
@ -216,7 +216,14 @@ TCPConnection connectTCP(NetworkAddress addr, NetworkAddress bind_address = anyA
|
|||
|
||||
enforce(!cancelled, "Failed to connect to " ~ addr.toString() ~
|
||||
": timeout");
|
||||
enforce(status == ConnectStatus.connected, "Failed to connect to "~addr.toString()~": "~status.to!string);
|
||||
|
||||
if (status != ConnectStatus.connected) {
|
||||
if (sock != SocketFD.invalid)
|
||||
assert(!eventDriver.sockets.releaseRef(sock));
|
||||
|
||||
enforce(false, "Failed to connect to "~addr.toString()~": "~status.to!string);
|
||||
assert(false);
|
||||
}
|
||||
|
||||
return TCPConnection(sock, uaddr);
|
||||
} ();
|
||||
|
|
22
tests/issue-115-connect-fail-leak.d
Normal file
22
tests/issue-115-connect-fail-leak.d
Normal file
|
@ -0,0 +1,22 @@
|
|||
/+ dub.sdl:
|
||||
name "test"
|
||||
dependency "vibe-core" path=".."
|
||||
+/
|
||||
module test;
|
||||
|
||||
import vibe.core.core;
|
||||
import vibe.core.log;
|
||||
import vibe.core.net;
|
||||
|
||||
void main()
|
||||
{
|
||||
foreach (_; 0 .. 20) {
|
||||
TCPConnection conn;
|
||||
try {
|
||||
conn = connectTCP("127.0.0.1", 16565);
|
||||
logError("Connection: %s", conn);
|
||||
conn.close();
|
||||
assert(false, "Didn't expect TCP connection on port 16565 to succeed");
|
||||
} catch (Exception) { }
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue