UDPPort::~UDPPort() {
if (resolver_) {
- resolver_->Destroy(false);
+ resolver_->Destroy(true);
}
if (!SharedSocket())
delete socket_;
void UDPPort::OnLocalAddressReady(talk_base::AsyncPacketSocket* socket,
const talk_base::SocketAddress& address) {
- AddAddress(address, address, UDP_PROTOCOL_NAME, LOCAL_PORT_TYPE,
+ AddAddress(address, address, talk_base::SocketAddress(),
+ UDP_PROTOCOL_NAME, LOCAL_PORT_TYPE,
ICE_TYPE_PREFERENCE_HOST, false);
MaybePrepareStunCandidate();
}
if (!SharedSocket() || stun_addr != socket_->GetLocalAddress()) {
// If socket is shared and |stun_addr| is equal to local socket
// address then discarding the stun address.
- // Setting related address before STUN candidate is added. For STUN
- // related address is local socket address.
- set_related_address(socket_->GetLocalAddress());
- AddAddress(stun_addr, socket_->GetLocalAddress(), UDP_PROTOCOL_NAME,
+ // For STUN related address is local socket address.
+ AddAddress(stun_addr, socket_->GetLocalAddress(),
+ socket_->GetLocalAddress(), UDP_PROTOCOL_NAME,
STUN_PORT_TYPE, ICE_TYPE_PREFERENCE_SRFLX, false);
}
SetResult(true);