|
@@ -718,15 +718,8 @@ int SctpTransport::RecvCallback(struct socket *sock, union sctp_sockstore addr,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-int SctpTransport::SendCallback(struct socket *sock, uint32_t sb_free, void *ulp_info) {
|
|
|
- struct sctp_paddrinfo paddrinfo = {};
|
|
|
- socklen_t len = sizeof(paddrinfo);
|
|
|
- if (usrsctp_getsockopt(sock, IPPROTO_SCTP, SCTP_GET_PEER_ADDR_INFO, &paddrinfo, &len))
|
|
|
- return -1;
|
|
|
-
|
|
|
- auto sconn = reinterpret_cast<struct sockaddr_conn *>(&paddrinfo.spinfo_address);
|
|
|
- void *ptr = sconn->sconn_addr;
|
|
|
- auto *transport = static_cast<SctpTransport *>(ptr);
|
|
|
+int SctpTransport::SendCallback(struct socket *, uint32_t sb_free, void *ulp_info) {
|
|
|
+ auto *transport = static_cast<SctpTransport *>(ulp_info);
|
|
|
|
|
|
std::shared_lock lock(InstancesMutex);
|
|
|
if (Instances.find(transport) == Instances.end())
|