3304 DCPS::RcHandle<SpdpTransport> tport =
tport_.lock();
3307 DCPS::RcHandle<Spdp> outer = tport->outer_.lock();
3311 tport->wbuff_.reset();
3313 const_cast<STUN::Message&
>(
message_).block = &tport->wbuff_;
3316 #ifdef OPENDDS_TESTING_FEATURES
3317 if (outer->sedp_->transport_inst()->should_drop(tport->wbuff_.length())) {
3323 const ssize_t res = socket.
send(tport->wbuff_.rd_ptr(), tport->wbuff_.length(),
address_);
3325 if (outer->sedp_->transport_inst()->count_messages()) {
3328 tport->transport_statistics_.message_count[
key].send_fail(tport->wbuff_.length());
3330 const int err = errno;
3331 if (err != ENETUNREACH || !tport->network_is_unreachable_) {
3335 ACE_TEXT(
"(%P|%t) WARNING: Spdp::SendStun::execute() - ")
3336 ACE_TEXT(
"destination %C failed send: %m\n"), DCPS::LogAddr(
address_).c_str()));
3339 if (err == ENETUNREACH) {
3340 tport->network_is_unreachable_ =
true;
3343 if (outer->sedp_->transport_inst()->count_messages()) {
3346 tport->transport_statistics_.message_count[
key].send(tport->wbuff_.length());
3348 tport->network_is_unreachable_ =
false;
#define ACE_GUARD(MUTEX, OBJ, LOCK)
const MessageCountKind MCK_STUN
ACE_HANDLE socket(int protocol_family, int type, int proto)
DCPS::WeakRcHandle< SpdpTransport > tport_
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
const DCPS::Encoding encoding(DCPS::Encoding::KIND_UNALIGNED_CDR, DCPS::ENDIAN_BIG)
ssize_t send(const void *buf, size_t n, const ACE_Addr &addr, int flags=0) const