Lagom: Adjust AK, LibCore and LibTLS to build on MacOS

This commit is contained in:
Marcin Gasperowicz 2020-05-29 22:22:01 +02:00 committed by Andreas Kling
parent 4e8de753c9
commit 9a4ee9aa1a
3 changed files with 19 additions and 3 deletions

View file

@ -37,13 +37,17 @@
# include <unistd.h>
#endif
#if defined(__APPLE__)
# include <sys/random.h>
#endif
namespace AK {
inline void fill_with_random(void* buffer, size_t length)
{
#if defined(__serenity__)
arc4random_buf(buffer, length);
#elif defined(__linux__)
#elif defined(__linux__) or defined(__APPLE__)
int rc = getentropy(buffer, length);
(void)rc;
#endif

View file

@ -31,8 +31,9 @@
#include <sys/socket.h>
#include <sys/stat.h>
#include <unistd.h>
#ifndef SOCK_NONBLOCK
#include <sys/ioctl.h>
# include <sys/ioctl.h>
#endif
namespace Core {
@ -111,12 +112,13 @@ bool LocalServer::listen(const String& address)
fcntl(m_fd, F_SETFD, FD_CLOEXEC);
#endif
ASSERT(m_fd >= 0);
#ifndef __APPLE__
rc = fchmod(m_fd, 0600);
if (rc < 0) {
perror("fchmod");
ASSERT_NOT_REACHED();
}
#endif
auto socket_address = SocketAddress::local(address);
auto un = socket_address.to_sockaddr_un();

View file

@ -30,6 +30,10 @@
#include <LibCrypto/PK/Code/EMSA_PSS.h>
#include <LibTLS/TLSv12.h>
#ifndef SOCK_NONBLOCK
# include <sys/ioctl.h>
#endif
//#define TLS_DEBUG
namespace {
@ -701,7 +705,13 @@ TLSv12::TLSv12(Core::Object* parent, Version version)
m_context.version = version;
m_context.is_server = false;
m_context.tls_buffer = ByteBuffer::create_uninitialized(0);
#ifdef SOCK_NONBLOCK
int fd = socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK, 0);
#else
int fd = socket(AF_INET, SOCK_STREAM, 0);
int option = 1;
ioctl(fd, FIONBIO, &option);
#endif
if (fd < 0) {
set_error(errno);
} else {