/* * Copyright (c) 2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #ifndef SOCK_NONBLOCK # include #endif namespace Core { UDPSocket::UDPSocket(Object* parent) : Socket(Socket::Type::UDP, parent) { #ifdef SOCK_NONBLOCK int fd = socket(AF_INET, SOCK_DGRAM | SOCK_NONBLOCK, 0); #else int fd = socket(AF_INET, SOCK_DGRAM, 0); int option = 1; ioctl(fd, FIONBIO, &option); #endif if (fd < 0) { set_error(errno); } else { set_fd(fd); set_mode(OpenMode::ReadWrite); set_error(0); } } UDPSocket::~UDPSocket() { } }