Core: Add UNIX domain socket support
> [!NOTE] > > Later versions of Windows has support for `AF_UNIX`, so it could be > added.
This commit is contained in:
@ -52,7 +52,7 @@ Error PacketPeerUDP::join_multicast_group(IPAddress p_multi_address, const Strin
|
||||
|
||||
if (!_sock->is_open()) {
|
||||
IP::Type ip_type = p_multi_address.is_ipv4() ? IP::TYPE_IPV4 : IP::TYPE_IPV6;
|
||||
Error err = _sock->open(NetSocket::TYPE_UDP, ip_type);
|
||||
Error err = _sock->open(NetSocket::Family::INET, NetSocket::TYPE_UDP, ip_type);
|
||||
ERR_FAIL_COND_V(err != OK, err);
|
||||
_sock->set_blocking_enabled(false);
|
||||
_sock->set_broadcasting_enabled(broadcast);
|
||||
@ -141,7 +141,7 @@ Error PacketPeerUDP::put_packet(const uint8_t *p_buffer, int p_buffer_size) {
|
||||
|
||||
if (!_sock->is_open()) {
|
||||
IP::Type ip_type = peer_addr.is_ipv4() ? IP::TYPE_IPV4 : IP::TYPE_IPV6;
|
||||
err = _sock->open(NetSocket::TYPE_UDP, ip_type);
|
||||
err = _sock->open(NetSocket::Family::INET, NetSocket::TYPE_UDP, ip_type);
|
||||
ERR_FAIL_COND_V(err != OK, err);
|
||||
_sock->set_blocking_enabled(false);
|
||||
_sock->set_broadcasting_enabled(broadcast);
|
||||
@ -186,7 +186,7 @@ Error PacketPeerUDP::bind(int p_port, const IPAddress &p_bind_address, int p_rec
|
||||
ip_type = p_bind_address.is_ipv4() ? IP::TYPE_IPV4 : IP::TYPE_IPV6;
|
||||
}
|
||||
|
||||
err = _sock->open(NetSocket::TYPE_UDP, ip_type);
|
||||
err = _sock->open(NetSocket::Family::INET, NetSocket::TYPE_UDP, ip_type);
|
||||
|
||||
if (err != OK) {
|
||||
return ERR_CANT_CREATE;
|
||||
@ -194,7 +194,8 @@ Error PacketPeerUDP::bind(int p_port, const IPAddress &p_bind_address, int p_rec
|
||||
|
||||
_sock->set_blocking_enabled(false);
|
||||
_sock->set_broadcasting_enabled(broadcast);
|
||||
err = _sock->bind(p_bind_address, p_port);
|
||||
NetSocket::Address addr(p_bind_address, p_port);
|
||||
err = _sock->bind(addr);
|
||||
|
||||
if (err != OK) {
|
||||
_sock->close();
|
||||
@ -231,12 +232,13 @@ Error PacketPeerUDP::connect_to_host(const IPAddress &p_host, int p_port) {
|
||||
|
||||
if (!_sock->is_open()) {
|
||||
IP::Type ip_type = p_host.is_ipv4() ? IP::TYPE_IPV4 : IP::TYPE_IPV6;
|
||||
err = _sock->open(NetSocket::TYPE_UDP, ip_type);
|
||||
err = _sock->open(NetSocket::Family::INET, NetSocket::TYPE_UDP, ip_type);
|
||||
ERR_FAIL_COND_V(err != OK, ERR_CANT_OPEN);
|
||||
_sock->set_blocking_enabled(false);
|
||||
}
|
||||
|
||||
err = _sock->connect_to_host(p_host, p_port);
|
||||
NetSocket::Address addr(p_host, p_port);
|
||||
err = _sock->connect_to_host(addr);
|
||||
|
||||
// I see no reason why we should get ERR_BUSY (wouldblock/eagain) here.
|
||||
// This is UDP, so connect is only used to tell the OS to which socket
|
||||
@ -345,9 +347,9 @@ int PacketPeerUDP::get_packet_port() const {
|
||||
}
|
||||
|
||||
int PacketPeerUDP::get_local_port() const {
|
||||
uint16_t local_port;
|
||||
_sock->get_socket_address(nullptr, &local_port);
|
||||
return local_port;
|
||||
NetSocket::Address addr;
|
||||
_sock->get_socket_address(&addr);
|
||||
return addr.port();
|
||||
}
|
||||
|
||||
void PacketPeerUDP::set_dest_address(const IPAddress &p_address, int p_port) {
|
||||
|
||||
Reference in New Issue
Block a user