multiplex: clean up functions that went in the wrong design direction
This commit is contained in:
parent
e6064f8e9f
commit
fab904a39a
|
@ -51,7 +51,7 @@ namespace uvgrtp {
|
|||
public:
|
||||
/// \cond DO_NOT_DOCUMENT
|
||||
media_stream(std::string cname, std::string remote_addr, std::string local_addr, uint16_t src_port, uint16_t dst_port,
|
||||
rtp_format_t fmt, int rce_flags, bool single_soc, std::shared_ptr<uvgrtp::socket> socptr);
|
||||
rtp_format_t fmt, int rce_flags);
|
||||
~media_stream();
|
||||
|
||||
/* Initialize traditional RTP session
|
||||
|
@ -330,7 +330,6 @@ namespace uvgrtp {
|
|||
* Used by session to index media streams */
|
||||
uint32_t get_key() const;
|
||||
|
||||
bool is_single_socket() const;
|
||||
/// \endcond
|
||||
|
||||
/**
|
||||
|
@ -395,8 +394,6 @@ namespace uvgrtp {
|
|||
bool ipv6_;
|
||||
rtp_format_t fmt_;
|
||||
|
||||
bool single_soc_;
|
||||
|
||||
/* Media context config */
|
||||
int rce_flags_ = 0;
|
||||
|
||||
|
|
|
@ -69,17 +69,6 @@ uvgrtp::session *uvgrtp::context::create_session(std::string address)
|
|||
return new uvgrtp::session(get_cname(), address);
|
||||
}
|
||||
|
||||
uvgrtp::session *uvgrtp::context::create_session(std::string remote_addr, std::string local_addr)
|
||||
{
|
||||
if (remote_addr == "" && local_addr == "")
|
||||
{
|
||||
UVG_LOG_ERROR("Please specify at least one address for create_session");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return new uvgrtp::session(get_cname(), remote_addr, local_addr);
|
||||
}
|
||||
|
||||
uvgrtp::session* uvgrtp::context::create_session(std::string remote_addr, std::string local_addr)
|
||||
{
|
||||
if (remote_addr == "" && local_addr == "")
|
||||
|
|
|
@ -31,11 +31,11 @@
|
|||
|
||||
uvgrtp::media_stream::media_stream(std::string cname, std::string remote_addr,
|
||||
std::string local_addr, uint16_t src_port, uint16_t dst_port, rtp_format_t fmt,
|
||||
int rce_flags, bool single_soc, std::shared_ptr<uvgrtp::socket> socptr) :
|
||||
int rce_flags) :
|
||||
key_(uvgrtp::random::generate_32()),
|
||||
srtp_(nullptr),
|
||||
srtcp_(nullptr),
|
||||
socket_(socptr),
|
||||
socket_(nullptr),
|
||||
rtp_(nullptr),
|
||||
rtcp_(nullptr),
|
||||
remote_sockaddr_(),
|
||||
|
@ -46,7 +46,6 @@ uvgrtp::media_stream::media_stream(std::string cname, std::string remote_addr,
|
|||
dst_port_(dst_port),
|
||||
ipv6_(false),
|
||||
fmt_(fmt),
|
||||
single_soc_(single_soc),
|
||||
rce_flags_(rce_flags),
|
||||
initialized_(false),
|
||||
rtp_handler_key_(0),
|
||||
|
@ -83,41 +82,41 @@ rtp_error_t uvgrtp::media_stream::init_connection()
|
|||
{
|
||||
rtp_error_t ret = RTP_GENERIC_ERROR;
|
||||
|
||||
if (!single_soc_) {
|
||||
// Use getaddrinfo() to determine whether we are using ipv4 or ipv6 addresses
|
||||
struct addrinfo hint, * res = NULL;
|
||||
memset(&hint, '\0', sizeof(hint));
|
||||
hint.ai_family = PF_UNSPEC;
|
||||
hint.ai_flags = AI_NUMERICHOST;
|
||||
|
||||
if (getaddrinfo(local_address_.c_str(), NULL, &hint, &res) != 0) {
|
||||
if (getaddrinfo(remote_address_.c_str(), NULL, &hint, &res) != 0) {
|
||||
UVG_LOG_ERROR("Invalid IP address");
|
||||
return RTP_GENERIC_ERROR;
|
||||
}
|
||||
}
|
||||
if (res->ai_family == AF_INET6) {
|
||||
ipv6_ = true;
|
||||
UVG_LOG_DEBUG("Using an IPv6 address");
|
||||
}
|
||||
else {
|
||||
UVG_LOG_DEBUG("Using an IPv4 address");
|
||||
}
|
||||
// Use getaddrinfo() to determine whether we are using ipv4 or ipv6 addresses
|
||||
struct addrinfo hint, * res = NULL;
|
||||
memset(&hint, '\0', sizeof(hint));
|
||||
hint.ai_family = PF_UNSPEC;
|
||||
hint.ai_flags = AI_NUMERICHOST;
|
||||
|
||||
// Initialize socket
|
||||
if ((ret = socket_->init(res->ai_family, SOCK_DGRAM, 0)) != RTP_OK) {
|
||||
return ret;
|
||||
if (getaddrinfo(local_address_.c_str(), NULL, &hint, &res) != 0) {
|
||||
if (getaddrinfo(remote_address_.c_str(), NULL, &hint, &res) != 0) {
|
||||
UVG_LOG_ERROR("Invalid IP address");
|
||||
return RTP_GENERIC_ERROR;
|
||||
}
|
||||
}
|
||||
if (res->ai_family == AF_INET6) {
|
||||
ipv6_ = true;
|
||||
UVG_LOG_DEBUG("Using an IPv6 address");
|
||||
}
|
||||
else {
|
||||
UVG_LOG_DEBUG("Using an IPv4 address");
|
||||
}
|
||||
|
||||
// Initialize socket
|
||||
if ((ret = socket_->init(res->ai_family, SOCK_DGRAM, 0)) != RTP_OK) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Make the socket non-blocking */
|
||||
int enabled = 1;
|
||||
/* Make the socket non-blocking */
|
||||
int enabled = 1;
|
||||
|
||||
if (::ioctlsocket(socket_->get_raw_socket(), FIONBIO, (u_long*)&enabled) < 0)
|
||||
UVG_LOG_ERROR("Failed to make the socket non-blocking!");
|
||||
if (::ioctlsocket(socket_->get_raw_socket(), FIONBIO, (u_long*)&enabled) < 0)
|
||||
UVG_LOG_ERROR("Failed to make the socket non-blocking!");
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
if (!(rce_flags_ & RCE_RECEIVE_ONLY) && remote_address_ != "" && dst_port_ != 0)
|
||||
{
|
||||
// no reason to fail sending even if binding fails so we set remote address first
|
||||
|
@ -135,10 +134,7 @@ rtp_error_t uvgrtp::media_stream::init_connection()
|
|||
UVG_LOG_INFO("Sending disabled for this stream");
|
||||
}
|
||||
|
||||
if (single_soc_) {
|
||||
UVG_LOG_INFO("Using a single socket for receiving");
|
||||
}
|
||||
else if (!(rce_flags_ & RCE_SEND_ONLY))
|
||||
if (!(rce_flags_ & RCE_SEND_ONLY))
|
||||
{
|
||||
if (local_address_ != "" && src_port_ != 0) {
|
||||
if (ipv6_) {
|
||||
|
@ -796,11 +792,6 @@ uint32_t uvgrtp::media_stream::get_key() const
|
|||
return key_;
|
||||
}
|
||||
|
||||
bool uvgrtp::media_stream::is_single_socket() const
|
||||
{
|
||||
return single_soc_;
|
||||
}
|
||||
|
||||
uvgrtp::rtcp *uvgrtp::media_stream::get_rtcp()
|
||||
{
|
||||
return rtcp_.get();
|
||||
|
|
|
@ -103,15 +103,9 @@ uvgrtp::media_stream* uvgrtp::session::create_stream(uint16_t src_port, uint16_t
|
|||
rtp_errno = RTP_INVALID_VALUE;
|
||||
return nullptr;
|
||||
}
|
||||
if (!(rce_flags & RCE_SEND_ONLY)) {
|
||||
if (!sf_->get_local_bound()) {
|
||||
sf_->bind_local_socket(src_port);
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<uvgrtp::socket> soc = sf_->get_socket_ptr();
|
||||
uvgrtp::media_stream* stream =
|
||||
new uvgrtp::media_stream(cname_, remote_address_, local_address_, src_port, dst_port, fmt, rce_flags, sf_->get_local_bound(), soc);
|
||||
new uvgrtp::media_stream(cname_, remote_address_, local_address_, src_port, dst_port, fmt, rce_flags);
|
||||
|
||||
if (rce_flags & RCE_SRTP) {
|
||||
if (!uvgrtp::crypto::enabled()) {
|
||||
|
|
|
@ -15,8 +15,7 @@ uvgrtp::socketfactory::socketfactory(int rce_flags) :
|
|||
local_address_(""),
|
||||
used_ports_({}),
|
||||
ipv6_(false),
|
||||
used_sockets_({}),
|
||||
local_bound_(false)
|
||||
used_sockets_({})
|
||||
{}
|
||||
|
||||
uvgrtp::socketfactory::~socketfactory()
|
||||
|
@ -24,7 +23,7 @@ uvgrtp::socketfactory::~socketfactory()
|
|||
|
||||
rtp_error_t uvgrtp::socketfactory::set_local_interface(std::string local_addr)
|
||||
{
|
||||
rtp_error_t ret = RTP_GENERIC_ERROR;
|
||||
rtp_error_t ret;
|
||||
|
||||
local_address_ = local_addr;
|
||||
// check IP address family
|
||||
|
@ -47,7 +46,7 @@ std::shared_ptr<uvgrtp::socket> uvgrtp::socketfactory::create_new_socket(uint16_
|
|||
{
|
||||
rtp_error_t ret = RTP_OK;
|
||||
if (std::find(used_ports_.begin(), used_ports_.end(), local_port) == used_ports_.end()) {
|
||||
std::shared_ptr<uvgrtp::socket> socket = std::make_shared<uvgrtp::socket>(new uvgrtp::socket(rce_flags_));
|
||||
std::shared_ptr<uvgrtp::socket> socket = std::make_shared<uvgrtp::socket>(rce_flags_);
|
||||
|
||||
if (ipv6_) {
|
||||
if ((ret = socket->init(AF_INET6, SOCK_DGRAM, 0)) != RTP_OK) {
|
||||
|
@ -87,12 +86,8 @@ std::shared_ptr<uvgrtp::socket> uvgrtp::socketfactory::create_new_socket(uint16_
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
bool uvgrtp::socketfactory::get_local_bound() const
|
||||
{
|
||||
return local_bound_;
|
||||
}
|
||||
|
||||
std::shared_ptr<uvgrtp::socket> uvgrtp::socketfactory::get_socket_ptr() const
|
||||
{
|
||||
return socket_;
|
||||
return nullptr;
|
||||
}
|
|
@ -17,7 +17,6 @@ namespace uvgrtp {
|
|||
rtp_error_t set_local_interface(std::string local_addr);
|
||||
std::shared_ptr<uvgrtp::socket> create_new_socket(uint16_t local_port);
|
||||
|
||||
bool get_local_bound() const;
|
||||
std::shared_ptr<uvgrtp::socket> get_socket_ptr() const;
|
||||
|
||||
private:
|
||||
|
@ -27,7 +26,6 @@ namespace uvgrtp {
|
|||
std::vector<uint16_t> used_ports_;
|
||||
bool ipv6_;
|
||||
std::vector<std::shared_ptr<uvgrtp::socket>> used_sockets_;
|
||||
bool local_bound_;
|
||||
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue