Skip to content
Snippets Groups Projects
Commit 1d9ce092 authored by Adrien Béraud's avatar Adrien Béraud
Browse files

sip transport: fix build without dht

Refs #61679

Change-Id: Ide96d6de67d43d4b9dd93c4aea8b7dc1b1bb5828
parent 0eb5e295
No related branches found
No related tags found
No related merge requests found
...@@ -112,7 +112,10 @@ SipTransport::stateToStr(pjsip_transport_state state) ...@@ -112,7 +112,10 @@ SipTransport::stateToStr(pjsip_transport_state state)
} }
SipTransportBroker::SipTransportBroker(pjsip_endpoint *endpt, pj_caching_pool& cp, pj_pool_t& pool) : SipTransportBroker::SipTransportBroker(pjsip_endpoint *endpt, pj_caching_pool& cp, pj_pool_t& pool) :
iceTransports_(), cp_(cp), pool_(pool), endpt_(endpt) #if HAVE_DHT
iceTransports_(),
#endif
cp_(cp), pool_(pool), endpt_(endpt)
{ {
instance = this; instance = this;
auto status = pjsip_tpmgr_set_state_cb(pjsip_endpt_get_tpmgr(endpt_), SipTransportBroker::tp_state_callback); auto status = pjsip_tpmgr_set_state_cb(pjsip_endpt_get_tpmgr(endpt_), SipTransportBroker::tp_state_callback);
...@@ -121,7 +124,9 @@ iceTransports_(), cp_(cp), pool_(pool), endpt_(endpt) ...@@ -121,7 +124,9 @@ iceTransports_(), cp_(cp), pool_(pool), endpt_(endpt)
sip_utils::sip_strerror(status); sip_utils::sip_strerror(status);
} }
#if HAVE_DHT
pjsip_transport_register_type(PJSIP_TRANSPORT_DATAGRAM, "ICE", pjsip_transport_get_default_port_for_type(PJSIP_TRANSPORT_UDP), &ice_pj_transport_type_); pjsip_transport_register_type(PJSIP_TRANSPORT_DATAGRAM, "ICE", pjsip_transport_get_default_port_for_type(PJSIP_TRANSPORT_UDP), &ice_pj_transport_type_);
#endif
} }
SipTransportBroker::~SipTransportBroker() SipTransportBroker::~SipTransportBroker()
...@@ -186,7 +191,9 @@ SipTransportBroker::transportStateChanged(pjsip_transport* tp, pjsip_transport_s ...@@ -186,7 +191,9 @@ SipTransportBroker::transportStateChanged(pjsip_transport* tp, pjsip_transport_s
udpTransports_.erase(transport_key); udpTransports_.erase(transport_key);
transportDestroyedCv_.notify_all(); transportDestroyedCv_.notify_all();
} }
} else if (type == ice_pj_transport_type_) { }
#if HAVE_DHT
else if (type == ice_pj_transport_type_) {
SFL_WARN("ICE transport destroy"); SFL_WARN("ICE transport destroy");
std::unique_lock<std::mutex> lock(iceMutex_); std::unique_lock<std::mutex> lock(iceMutex_);
const auto transport_key = std::find_if(iceTransports_.begin(), iceTransports_.end(), [tp](const SipIceTransport& i) { const auto transport_key = std::find_if(iceTransports_.begin(), iceTransports_.end(), [tp](const SipIceTransport& i) {
...@@ -195,6 +202,7 @@ SipTransportBroker::transportStateChanged(pjsip_transport* tp, pjsip_transport_s ...@@ -195,6 +202,7 @@ SipTransportBroker::transportStateChanged(pjsip_transport* tp, pjsip_transport_s
if (transport_key != iceTransports_.end()) if (transport_key != iceTransports_.end())
iceTransports_.erase(transport_key); iceTransports_.erase(transport_key);
} }
#endif
} }
} }
...@@ -369,6 +377,7 @@ SipTransportBroker::getTlsTransport(const std::shared_ptr<TlsListener>& l, const ...@@ -369,6 +377,7 @@ SipTransportBroker::getTlsTransport(const std::shared_ptr<TlsListener>& l, const
} }
#endif #endif
#if HAVE_DHT
std::shared_ptr<SipTransport> std::shared_ptr<SipTransport>
SipTransportBroker::getIceTransport(const std::shared_ptr<sfl::IceTransport>& ice) SipTransportBroker::getIceTransport(const std::shared_ptr<sfl::IceTransport>& ice)
{ {
...@@ -383,6 +392,7 @@ SipTransportBroker::getIceTransport(const std::shared_ptr<sfl::IceTransport>& ic ...@@ -383,6 +392,7 @@ SipTransportBroker::getIceTransport(const std::shared_ptr<sfl::IceTransport>& ic
sip_ice_tr.start(); sip_ice_tr.start();
return ret; return ret;
} }
#endif
std::vector<pj_sockaddr> std::vector<pj_sockaddr>
SipTransportBroker::getSTUNAddresses(const pj_str_t serverName, pj_uint16_t port, std::vector<long> &socketDescriptors) const SipTransportBroker::getSTUNAddresses(const pj_str_t serverName, pj_uint16_t port, std::vector<long> &socketDescriptors) const
......
...@@ -178,7 +178,9 @@ public: ...@@ -178,7 +178,9 @@ public:
std::shared_ptr<SipTransport> getTlsTransport(const std::shared_ptr<TlsListener>&, const IpAddr& remote); std::shared_ptr<SipTransport> getTlsTransport(const std::shared_ptr<TlsListener>&, const IpAddr& remote);
#endif #endif
#if HAVE_DHT
std::shared_ptr<SipTransport> getIceTransport(const std::shared_ptr<sfl::IceTransport>&); std::shared_ptr<SipTransport> getIceTransport(const std::shared_ptr<sfl::IceTransport>&);
#endif
std::shared_ptr<SipTransport> findTransport(pjsip_transport*); std::shared_ptr<SipTransport> findTransport(pjsip_transport*);
...@@ -247,8 +249,12 @@ private: ...@@ -247,8 +249,12 @@ private:
/** /**
* Storage for SIP/ICE transport instances. * Storage for SIP/ICE transport instances.
*/ */
#if HAVE_DHT
int ice_pj_transport_type_ {PJSIP_TRANSPORT_START_OTHER};
std::list<SipIceTransport> iceTransports_; std::list<SipIceTransport> iceTransports_;
std::mutex iceMutex_ {}; std::mutex iceMutex_ {};
#endif
std::mutex transportMapMutex_ {}; std::mutex transportMapMutex_ {};
std::condition_variable transportDestroyedCv_ {}; std::condition_variable transportDestroyedCv_ {};
...@@ -257,7 +263,6 @@ private: ...@@ -257,7 +263,6 @@ private:
pj_pool_t& pool_; pj_pool_t& pool_;
pjsip_endpoint *endpt_; pjsip_endpoint *endpt_;
int ice_pj_transport_type_ {PJSIP_TRANSPORT_START_OTHER};
}; };
#endif // SIPTRANSPORT_H_ #endif // SIPTRANSPORT_H_
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment