From 50ffc619abaa83a34857a405b416dce640fba622 Mon Sep 17 00:00:00 2001 From: Andrey Teplyashin Date: Thu, 6 Dec 2018 14:30:41 +0700 Subject: [PATCH] Binding ip address in SCTP transport in client mode to supress SCTP multihoming --- .../src/library-trans-extsctp/C_SocketSCTP.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/seagull/trunk/src/library-trans-extsctp/C_SocketSCTP.cpp b/seagull/trunk/src/library-trans-extsctp/C_SocketSCTP.cpp index 8053236..68b4355 100755 --- a/seagull/trunk/src/library-trans-extsctp/C_SocketSCTP.cpp +++ b/seagull/trunk/src/library-trans-extsctp/C_SocketSCTP.cpp @@ -896,6 +896,24 @@ int C_SocketSCTPClient::_open(T_pOpenStatus P_status, if (m_type == E_SOCKET_TCP_MODE) { + /* struct sockaddr_storage *connect = NULL; */ + /* unsigned int cc = 0, count = 0; */ + /* if(m_remote_addr_info->m_addrs_dst > 0) { */ + /* // SCTP MULTIHOMING CONNECT */ + /* for (unsigned int i = 0; i < m_remote_addr_info->m_addrs_dst.size(); i++) { */ + /* sockaddr_in addr = m_remote_addr_info->m_addrs_dst[i]; */ + /* SOCKET_DEBUG(1, "multihoming client dst " << inet_ntoa(addr->sin_addr)); */ + /* } */ + /* } */ + /* connect = reallock */ + if(m_remote_addr_info->m_value != NULL) { + L_rc = bind(m_socket_id, + (sockaddr *)(void *)&(m_remote_addr_info->m_addr_src), + SOCKADDR_IN_SIZE(&(m_remote_addr_info->m_addr_src))); + if (L_rc) { + SOCKET_ERROR(1, "bind [" << strerror(errno) << "]"); + } + } L_rc = connect (m_socket_id, (struct sockaddr*)(void*)&(m_remote_addr_info->m_addr),