multiplex: socketfactory create_new_socket() returns pointer to the socket

This commit is contained in:
Heikki Tampio 2023-04-05 10:45:15 +03:00
parent 9e8678e433
commit e6064f8e9f
2 changed files with 7 additions and 6 deletions

View File

@ -43,7 +43,7 @@ rtp_error_t uvgrtp::socketfactory::set_local_interface(std::string local_addr)
return RTP_OK;
}
rtp_error_t uvgrtp::socketfactory::create_new_socket(uint16_t local_port)
std::shared_ptr<uvgrtp::socket> uvgrtp::socketfactory::create_new_socket(uint16_t local_port)
{
rtp_error_t ret = RTP_OK;
if (std::find(used_ports_.begin(), used_ports_.end(), local_port) == used_ports_.end()) {
@ -51,12 +51,12 @@ rtp_error_t uvgrtp::socketfactory::create_new_socket(uint16_t local_port)
if (ipv6_) {
if ((ret = socket->init(AF_INET6, SOCK_DGRAM, 0)) != RTP_OK) {
return ret;
return nullptr;
}
}
else {
if ((ret = socket->init(AF_INET6, SOCK_DGRAM, 0)) != RTP_OK) {
return ret;
return nullptr;
}
}
#ifdef _WIN32
@ -64,7 +64,7 @@ rtp_error_t uvgrtp::socketfactory::create_new_socket(uint16_t local_port)
int enabled = 1;
if (::ioctlsocket(socket->get_raw_socket(), FIONBIO, (u_long*)&enabled) < 0) {
return RTP_GENERIC_ERROR;
return nullptr;
}
#endif
used_sockets_.push_back(socket);
@ -80,10 +80,11 @@ rtp_error_t uvgrtp::socketfactory::create_new_socket(uint16_t local_port)
}
if (ret == RTP_OK) {
used_ports_.push_back(local_port);
return socket;
}
}
return ret;
return nullptr;
}
bool uvgrtp::socketfactory::get_local_bound() const

View File

@ -15,7 +15,7 @@ namespace uvgrtp {
~socketfactory();
rtp_error_t set_local_interface(std::string local_addr);
rtp_error_t create_new_socket(uint16_t local_port);
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;