diff --git a/src/net/UniqueSocketDescriptor.hxx.orig b/src/net/UniqueSocketDescriptor.hxx.orig deleted file mode 100644 index c74548736..000000000 --- a/src/net/UniqueSocketDescriptor.hxx.orig +++ /dev/null @@ -1,105 +0,0 @@ -// SPDX-License-Identifier: BSD-2-Clause -// author: Max Kellermann <max.kellermann@gmail.com> - -#pragma once - -#include "SocketDescriptor.hxx" - -#ifndef _WIN32 -#include "io/UniqueFileDescriptor.hxx" -#endif - -#include <utility> - -class StaticSocketAddress; - -/** - * Wrapper for a socket file descriptor. - */ -class UniqueSocketDescriptor : public SocketDescriptor { -public: - UniqueSocketDescriptor() noexcept - :SocketDescriptor(SocketDescriptor::Undefined()) {} - - explicit UniqueSocketDescriptor(SocketDescriptor _fd) noexcept - :SocketDescriptor(_fd) {} -#ifndef _WIN32 - explicit UniqueSocketDescriptor(FileDescriptor _fd) noexcept - :SocketDescriptor(_fd) {} - - explicit UniqueSocketDescriptor(UniqueFileDescriptor &&_fd) noexcept - :SocketDescriptor(_fd.Release()) {} -#endif // !_WIN32 - - explicit UniqueSocketDescriptor(int _fd) noexcept - :SocketDescriptor(_fd) {} - -#ifdef _WIN32 - UniqueSocketDescriptor(UniqueSocketDescriptor &&other) noexcept - :SocketDescriptor(std::exchange(other.fd, INVALID_SOCKET)) {} -#else // !_WIN32 - UniqueSocketDescriptor(UniqueSocketDescriptor &&other) noexcept - :SocketDescriptor(std::exchange(other.fd, -1)) {} -#endif // !_WIN32 - - ~UniqueSocketDescriptor() noexcept { - if (IsDefined()) - Close(); - } - - /** - * Release ownership and return the descriptor as an unmanaged - * #SocketDescriptor instance. - */ - SocketDescriptor Release() noexcept { - return std::exchange(*(SocketDescriptor *)this, Undefined()); - } - -#ifndef _WIN32 - UniqueFileDescriptor MoveToFileDescriptor() && noexcept { - return UniqueFileDescriptor{Release().ToFileDescriptor()}; - } -#endif - - UniqueSocketDescriptor &operator=(UniqueSocketDescriptor &&src) noexcept { - using std::swap; - swap(fd, src.fd); - return *this; - } - - bool operator==(const UniqueSocketDescriptor &other) const noexcept { - return fd == other.fd; - } - - /** - * @return an "undefined" instance on error - */ - UniqueSocketDescriptor AcceptNonBlock() const noexcept { - return UniqueSocketDescriptor(SocketDescriptor::AcceptNonBlock()); - } - - /** - * @return an "undefined" instance on error - */ - UniqueSocketDescriptor AcceptNonBlock(StaticSocketAddress &address) const noexcept { - return UniqueSocketDescriptor(SocketDescriptor::AcceptNonBlock(address)); - } - -#ifndef _WIN32 - static bool CreateSocketPair(int domain, int type, int protocol, - UniqueSocketDescriptor &a, - UniqueSocketDescriptor &b) noexcept { - return SocketDescriptor::CreateSocketPair(domain, type, - protocol, - a, b); - } - - static bool CreateSocketPairNonBlock(int domain, int type, int protocol, - UniqueSocketDescriptor &a, - UniqueSocketDescriptor &b) noexcept { - return SocketDescriptor::CreateSocketPairNonBlock(domain, type, - protocol, - a, b); - } -#endif -};