event/ServerSocket: runtime error if abstract sockets are unavailable

This commit is contained in:
Max Kellermann 2019-03-20 13:09:16 +01:00
parent 8fc3c5c612
commit a854595886
3 changed files with 5 additions and 9 deletions

View File

@ -29,10 +29,8 @@ ServerSocketAddGeneric(ServerSocket &server_socket, const char *address, unsigne
server_socket.AddPort(port); server_socket.AddPort(port);
} else if (address[0] == '/' || address[0] == '~') { } else if (address[0] == '/' || address[0] == '~') {
server_socket.AddPath(ParsePath(address)); server_socket.AddPath(ParsePath(address));
#ifdef __linux__
} else if (address[0] == '@') { } else if (address[0] == '@') {
server_socket.AddAbstract(address); server_socket.AddAbstract(address);
#endif
} else { } else {
server_socket.AddHost(address, port); server_socket.AddHost(address, port);
} }

View File

@ -397,12 +397,14 @@ ServerSocket::AddPath(AllocatedPath &&path)
} }
#ifdef __linux__
void void
ServerSocket::AddAbstract(const char *name) ServerSocket::AddAbstract(const char *name)
{ {
#if !defined(HAVE_UN) #if !defined(__linux__)
(void)name;
throw std::runtime_error("Abstract sockets are only available on Linux");
#elif !defined(HAVE_UN)
(void)name; (void)name;
throw std::runtime_error("Local socket support is disabled"); throw std::runtime_error("Local socket support is disabled");
@ -416,5 +418,3 @@ ServerSocket::AddAbstract(const char *name)
AddAddress(std::move(address)); AddAddress(std::move(address));
#endif #endif
} }
#endif

View File

@ -99,7 +99,6 @@ public:
*/ */
void AddPath(AllocatedPath &&path); void AddPath(AllocatedPath &&path);
#ifdef __linux__
/** /**
* Add a listener on an abstract local socket (Linux specific). * Add a listener on an abstract local socket (Linux specific).
* *
@ -109,7 +108,6 @@ public:
* instead of a null byte * instead of a null byte
*/ */
void AddAbstract(const char *name); void AddAbstract(const char *name);
#endif
/** /**
* Add a socket descriptor that is accepting connections. After this * Add a socket descriptor that is accepting connections. After this