diff options
author | dec05eba <dec05eba@protonmail.com> | 2018-10-14 04:17:54 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-08-18 22:56:48 +0200 |
commit | 3e2c7e59672b282f8e089679ae7f05cfc03e405b (patch) | |
tree | 06f8395046e3cb784dc54f13a4945f18966dd68f /src/DirectConnection.cpp | |
parent | aac821b1d3f1148a084e097e94f383cff3dad467 (diff) |
Add peer to listen callback
Diffstat (limited to 'src/DirectConnection.cpp')
-rw-r--r-- | src/DirectConnection.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/DirectConnection.cpp b/src/DirectConnection.cpp index 540f7cb..71c7f1f 100644 --- a/src/DirectConnection.cpp +++ b/src/DirectConnection.cpp @@ -74,12 +74,26 @@ namespace sibs { if(reuseAddr) { + /* if(UDT::bind(socket, (sockaddr*)&addressToBind.address, sizeof(addressToBind.address)) == UDT::ERROR) { std::string errMsg = "UDT: Failed to bind, error: "; errMsg += UDT::getlasterror_desc(); throw SocketCreateException(errMsg); } + */ + Ipv4 myAddr = addressToBind; + for(int i = 0; i < 2000; ++i) + { + if(UDT::bind(socket, (sockaddr*)&myAddr.address, sizeof(myAddr.address)) == UDT::ERROR) + { + port = (u16)generateRandomNumber(2000, 32000); + myAddr.address.sin_port = htons(port); + } + else + return socket; + } + throw SocketCreateException("UDT: Failed to bind after 2000 tries"); } else { |