ladybird/Libraries/LibCore/CLocalSocket.cpp
Andreas Kling 7127c4fdbb LibCore: CIODevice::set_error() is meant to be called with the 'errno'
The point of this function is to stash away the innermost error code
so that we don't lose it by the time we get back to the client code.
2019-08-17 11:07:15 +02:00

28 lines
620 B
C++

#include <LibCore/CLocalSocket.h>
#include <sys/socket.h>
#include <errno.h>
CLocalSocket::CLocalSocket(Badge<CLocalServer>, int fd, CObject* parent)
: CSocket(CSocket::Type::Local, parent)
{
set_fd(fd);
set_mode(CIODevice::ReadWrite);
set_error(0);
}
CLocalSocket::CLocalSocket(CObject* parent)
: CSocket(CSocket::Type::Local, parent)
{
int fd = socket(AF_LOCAL, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, 0);
if (fd < 0) {
set_error(errno);
} else {
set_fd(fd);
set_mode(CIODevice::ReadWrite);
set_error(0);
}
}
CLocalSocket::~CLocalSocket()
{
}