mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-14 07:40:07 +02:00
1325 lines
47 KiB
Plaintext
1325 lines
47 KiB
Plaintext
From f436eed91214a54fa923c754765c49776af28906 Mon Sep 17 00:00:00 2001
|
|
From: Maite Gamper <victor@wenzeslaus.de>
|
|
Date: Thu, 22 Dec 2022 13:36:46 +0100
|
|
Subject: poco: add a plattform identifier
|
|
|
|
|
|
diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h
|
|
index 192d6c7..ac21e57 100644
|
|
--- a/Foundation/include/Poco/Platform.h
|
|
+++ b/Foundation/include/Poco/Platform.h
|
|
@@ -43,6 +43,7 @@
|
|
#define POCO_OS_WINDOWS_NT 0x1001
|
|
#define POCO_OS_WINDOWS_CE 0x1011
|
|
#define POCO_OS_VMS 0x2001
|
|
+#define POCO_OS_HAIKU 0x0001
|
|
|
|
|
|
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
|
@@ -107,6 +108,9 @@
|
|
#elif defined(__VMS)
|
|
#define POCO_OS_FAMILY_VMS 1
|
|
#define POCO_OS POCO_OS_VMS
|
|
+#elif defined(__HAIKU__)
|
|
+ #define POCO_OS_FAMILY_BE 1
|
|
+ #define POCO_OS POCO_OS_HAIKU
|
|
#endif
|
|
|
|
|
|
--
|
|
2.42.1
|
|
|
|
|
|
From 2d7d9c9764c93469200949e10c0014104ac4ce76 Mon Sep 17 00:00:00 2001
|
|
From: Maite Gamper <victor@wenzeslaus.de>
|
|
Date: Thu, 22 Dec 2022 13:47:56 +0100
|
|
Subject: poco: implemented debugger for haiku
|
|
|
|
|
|
diff --git a/Foundation/src/Debugger.cpp b/Foundation/src/Debugger.cpp
|
|
index f50a7f7..17ddbe1 100644
|
|
--- a/Foundation/src/Debugger.cpp
|
|
+++ b/Foundation/src/Debugger.cpp
|
|
@@ -21,6 +21,8 @@
|
|
#elif defined(POCO_OS_FAMILY_UNIX) && !defined(POCO_VXWORKS)
|
|
#include <unistd.h>
|
|
#include <signal.h>
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+ #include <OS.h>
|
|
#endif
|
|
#include "Poco/UnicodeConverter.h"
|
|
|
|
@@ -55,6 +57,8 @@ bool Debugger::isAvailable()
|
|
return false;
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
return std::getenv("POCO_ENABLE_DEBUGGER") ? true : false;
|
|
+ #elif defined(POCO_OS_FAMILY_BE)
|
|
+ return true;
|
|
#endif
|
|
#else
|
|
return false;
|
|
@@ -103,6 +107,10 @@ void Debugger::enter()
|
|
{
|
|
// not supported
|
|
}
|
|
+ #elif defined(POCO_OS_FAMILY_BE)
|
|
+ if(isAvailable()) {
|
|
+ debugger("");
|
|
+ }
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
if (isAvailable())
|
|
{
|
|
--
|
|
2.42.1
|
|
|
|
|
|
From bdbde563ef5e67fc5d1fef2160eeee4f1f8b99e3 Mon Sep 17 00:00:00 2001
|
|
From: Maite Gamper <victor@wenzeslaus.de>
|
|
Date: Sat, 18 Mar 2023 09:42:24 +0100
|
|
Subject: libpoco: initial porting to Haiku
|
|
|
|
Basically, for now we use Haiku's POSIX compatibility layer.
|
|
It would be nice to use Haiku's native API
|
|
Thread names are not implemented at all currenty.
|
|
|
|
diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt
|
|
index f504bc1..3207021 100644
|
|
--- a/Foundation/CMakeLists.txt
|
|
+++ b/Foundation/CMakeLists.txt
|
|
@@ -168,6 +168,9 @@ else()
|
|
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "AIX")
|
|
target_compile_definitions(Foundation PUBLIC _XOPEN_SOURCE=500 POCO_HAVE_FD_POLL)
|
|
target_link_libraries(Foundation PUBLIC pthread ${CMAKE_DL_LIBS} rt)
|
|
+ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Haiku")
|
|
+ target_compile_definitions(Foundation PUBLIC _XOPEN_SOURCE=500 POCO_HAVE_FD_POLL)
|
|
+ target_link_libraries(Foundation PUBLIC pthread ${CMAKE_DL_LIBS} network)
|
|
else()
|
|
target_compile_definitions(Foundation PUBLIC _XOPEN_SOURCE=500 POCO_HAVE_FD_EPOLL)
|
|
target_link_libraries(Foundation PUBLIC pthread ${CMAKE_DL_LIBS} rt)
|
|
diff --git a/Foundation/include/Poco/FPEnvironment.h b/Foundation/include/Poco/FPEnvironment.h
|
|
index 4602f57..e18be55 100644
|
|
--- a/Foundation/include/Poco/FPEnvironment.h
|
|
+++ b/Foundation/include/Poco/FPEnvironment.h
|
|
@@ -31,6 +31,8 @@
|
|
#include "Poco/FPEnvironment_QNX.h"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Poco/FPEnvironment_C99.h"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+#include "Poco/FPEnvironment_C99.h"
|
|
#elif defined(POCO_OS_FAMILY_WINDOWS)
|
|
#include "Poco/FPEnvironment_WIN32.h"
|
|
#else
|
|
diff --git a/Foundation/include/Poco/File.h b/Foundation/include/Poco/File.h
|
|
index 2ba1e96..402e32f 100644
|
|
--- a/Foundation/include/Poco/File.h
|
|
+++ b/Foundation/include/Poco/File.h
|
|
@@ -31,6 +31,9 @@
|
|
#endif
|
|
#elif defined(POCO_VXWORKS)
|
|
#include "Poco/File_VX.h"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+// TODO use the api
|
|
+#include "Poco/File_UNIX.h"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Poco/File_UNIX.h"
|
|
#endif
|
|
diff --git a/Foundation/include/Poco/Foundation.h b/Foundation/include/Poco/Foundation.h
|
|
index 74a3bf9..d143221 100644
|
|
--- a/Foundation/include/Poco/Foundation.h
|
|
+++ b/Foundation/include/Poco/Foundation.h
|
|
@@ -100,6 +100,9 @@
|
|
#include "Poco/Platform_WIN32.h"
|
|
#elif defined(POCO_VXWORKS)
|
|
#include "Poco/Platform_VX.h"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+ //TODO use native api
|
|
+ #include "Poco/Platform_POSIX.h"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Poco/Platform_POSIX.h"
|
|
#endif
|
|
diff --git a/Foundation/include/Poco/NamedEvent.h b/Foundation/include/Poco/NamedEvent.h
|
|
index 93c4b27..ab97e23 100644
|
|
--- a/Foundation/include/Poco/NamedEvent.h
|
|
+++ b/Foundation/include/Poco/NamedEvent.h
|
|
@@ -25,6 +25,9 @@
|
|
#include "Poco/NamedEvent_WIN32U.h"
|
|
#elif POCO_OS == POCO_OS_ANDROID
|
|
#include "Poco/NamedEvent_Android.h"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "Poco/NamedEvent_UNIX.h"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Poco/NamedEvent_UNIX.h"
|
|
#endif
|
|
diff --git a/Foundation/include/Poco/NamedEvent_UNIX.h b/Foundation/include/Poco/NamedEvent_UNIX.h
|
|
index 22cb31d..5823d02 100644
|
|
--- a/Foundation/include/Poco/NamedEvent_UNIX.h
|
|
+++ b/Foundation/include/Poco/NamedEvent_UNIX.h
|
|
@@ -19,7 +19,7 @@
|
|
|
|
|
|
#include "Poco/Foundation.h"
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
#include <semaphore.h>
|
|
#endif
|
|
|
|
@@ -39,7 +39,7 @@ private:
|
|
std::string getFileName();
|
|
|
|
std::string _name;
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
sem_t* _sem;
|
|
#else
|
|
int _semid; // semaphore id
|
|
diff --git a/Foundation/include/Poco/NamedMutex.h b/Foundation/include/Poco/NamedMutex.h
|
|
index 197fe38..a6e5048 100644
|
|
--- a/Foundation/include/Poco/NamedMutex.h
|
|
+++ b/Foundation/include/Poco/NamedMutex.h
|
|
@@ -26,6 +26,9 @@
|
|
#include "Poco/NamedMutex_WIN32U.h"
|
|
#elif POCO_OS == POCO_OS_ANDROID
|
|
#include "Poco/NamedMutex_Android.h"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "Poco/NamedMutex_UNIX.h"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Poco/NamedMutex_UNIX.h"
|
|
#endif
|
|
diff --git a/Foundation/include/Poco/NamedMutex_UNIX.h b/Foundation/include/Poco/NamedMutex_UNIX.h
|
|
index 151aa1e..e1f61d1 100644
|
|
--- a/Foundation/include/Poco/NamedMutex_UNIX.h
|
|
+++ b/Foundation/include/Poco/NamedMutex_UNIX.h
|
|
@@ -21,7 +21,7 @@
|
|
#include "Poco/Foundation.h"
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
#include <semaphore.h>
|
|
#endif
|
|
|
|
@@ -42,7 +42,7 @@ private:
|
|
std::string getFileName();
|
|
|
|
std::string _name;
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
sem_t* _sem;
|
|
#else
|
|
int _semid; // semaphore id
|
|
diff --git a/Foundation/include/Poco/PipeImpl.h b/Foundation/include/Poco/PipeImpl.h
|
|
index b0b7183..ea9a96e 100644
|
|
--- a/Foundation/include/Poco/PipeImpl.h
|
|
+++ b/Foundation/include/Poco/PipeImpl.h
|
|
@@ -27,6 +27,9 @@
|
|
#else
|
|
#include "Poco/PipeImpl_WIN32.h"
|
|
#endif
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "Poco/PipeImpl_POSIX.h"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Poco/PipeImpl_POSIX.h"
|
|
#else
|
|
diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h
|
|
index ac21e57..c9c62f4 100644
|
|
--- a/Foundation/include/Poco/Platform.h
|
|
+++ b/Foundation/include/Poco/Platform.h
|
|
@@ -43,7 +43,7 @@
|
|
#define POCO_OS_WINDOWS_NT 0x1001
|
|
#define POCO_OS_WINDOWS_CE 0x1011
|
|
#define POCO_OS_VMS 0x2001
|
|
-#define POCO_OS_HAIKU 0x0001
|
|
+#define POCO_OS_HAIKU 0x3001
|
|
|
|
|
|
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
|
diff --git a/Foundation/include/Poco/Process.h b/Foundation/include/Poco/Process.h
|
|
index f84b68e..7543dba 100644
|
|
--- a/Foundation/include/Poco/Process.h
|
|
+++ b/Foundation/include/Poco/Process.h
|
|
@@ -29,6 +29,9 @@
|
|
#endif
|
|
#elif defined(POCO_VXWORKS)
|
|
#include "Poco/Process_VX.h"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "Poco/Process_UNIX.h"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Poco/Process_UNIX.h"
|
|
#endif
|
|
diff --git a/Foundation/include/Poco/Types.h b/Foundation/include/Poco/Types.h
|
|
index 6489a6f..14d61cc 100644
|
|
--- a/Foundation/include/Poco/Types.h
|
|
+++ b/Foundation/include/Poco/Types.h
|
|
@@ -21,10 +21,7 @@
|
|
#include "Poco/Foundation.h"
|
|
#include <cstdint>
|
|
|
|
-
|
|
namespace Poco {
|
|
-
|
|
-
|
|
using Int8 = std::int8_t;
|
|
using UInt8 = std::uint8_t;
|
|
using Int16 = std::int16_t;
|
|
@@ -36,7 +33,6 @@ using UInt64 = std::uint64_t;
|
|
using IntPtr = std::intptr_t;
|
|
using UIntPtr = std::uintptr_t;
|
|
|
|
-
|
|
#if defined(_MSC_VER)
|
|
#if defined(_WIN64)
|
|
#define POCO_PTR_IS_64_BIT 1
|
|
@@ -49,7 +45,7 @@ using UIntPtr = std::uintptr_t;
|
|
#if defined(__LP64__)
|
|
#define POCO_PTR_IS_64_BIT 1
|
|
#define POCO_LONG_IS_64_BIT 1
|
|
- #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID
|
|
+ #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID || defined(POCO_OS_FAMILY_BE)
|
|
#define POCO_INT64_IS_LONG 1
|
|
#endif
|
|
#endif
|
|
diff --git a/Foundation/src/DirectoryIterator.cpp b/Foundation/src/DirectoryIterator.cpp
|
|
index 432c593..9ed6d2e 100644
|
|
--- a/Foundation/src/DirectoryIterator.cpp
|
|
+++ b/Foundation/src/DirectoryIterator.cpp
|
|
@@ -19,6 +19,9 @@
|
|
#include "DirectoryIterator_WIN32U.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "DirectoryIterator_UNIX.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+// TODO maybe use the be api
|
|
+#include "DirectoryIterator_UNIX.cpp"
|
|
#endif
|
|
|
|
|
|
diff --git a/Foundation/src/DirectoryIterator_UNIX.cpp b/Foundation/src/DirectoryIterator_UNIX.cpp
|
|
index 16be505..9d9485f 100644
|
|
--- a/Foundation/src/DirectoryIterator_UNIX.cpp
|
|
+++ b/Foundation/src/DirectoryIterator_UNIX.cpp
|
|
@@ -15,6 +15,9 @@
|
|
#include "Poco/DirectoryIterator_UNIX.h"
|
|
#if defined(POCO_VXWORKS)
|
|
#include "Poco/File_VX.h"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+// TODO maybe use the be api
|
|
+#include "Poco/File_UNIX.h"
|
|
#else
|
|
#include "Poco/File_UNIX.h"
|
|
#endif
|
|
diff --git a/Foundation/src/Environment.cpp b/Foundation/src/Environment.cpp
|
|
index 58a8ef3..c1ff0cb 100644
|
|
--- a/Foundation/src/Environment.cpp
|
|
+++ b/Foundation/src/Environment.cpp
|
|
@@ -27,6 +27,9 @@
|
|
#include "Environment_VX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Environment_UNIX.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+// TODO maybe use the be api
|
|
+#include "Environment_UNIX.h"
|
|
#elif defined(POCO_OS_FAMILY_WINDOWS)
|
|
#if defined(_WIN32_WCE)
|
|
#include "Environment_WINCE.cpp"
|
|
diff --git a/Foundation/src/Environment_UNIX.cpp b/Foundation/src/Environment_UNIX.cpp
|
|
index b7e57e4..4ab09bf 100644
|
|
--- a/Foundation/src/Environment_UNIX.cpp
|
|
+++ b/Foundation/src/Environment_UNIX.cpp
|
|
@@ -136,7 +136,7 @@ unsigned EnvironmentImpl::processorCountImpl()
|
|
//
|
|
// nodeIdImpl
|
|
//
|
|
-#if defined(POCO_OS_FAMILY_BSD) || POCO_OS == POCO_OS_QNX
|
|
+#if defined(POCO_OS_FAMILY_BSD) || POCO_OS == POCO_OS_QNX || defined(POCO_OS_FAMILY_BE)
|
|
//
|
|
// BSD variants
|
|
//
|
|
@@ -161,7 +161,11 @@ void EnvironmentImpl::nodeIdImpl(NodeId& id)
|
|
if (ifap->ifa_addr && ifap->ifa_addr->sa_family == AF_LINK)
|
|
{
|
|
struct sockaddr_dl* sdl = reinterpret_cast<struct sockaddr_dl*>(ifap->ifa_addr);
|
|
+ #ifdef POCO_OS_HAIKU
|
|
+ caddr_t ap = (caddr_t) LLADDR(sdl);
|
|
+ #else
|
|
caddr_t ap = LLADDR(sdl);
|
|
+ #endif
|
|
int alen = sdl->sdl_alen;
|
|
if (ap && alen > 0)
|
|
{
|
|
diff --git a/Foundation/src/FPEnvironment.cpp b/Foundation/src/FPEnvironment.cpp
|
|
index 3b853dd..18011f6 100644
|
|
--- a/Foundation/src/FPEnvironment.cpp
|
|
+++ b/Foundation/src/FPEnvironment.cpp
|
|
@@ -32,6 +32,9 @@
|
|
#include "FPEnvironment_QNX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "FPEnvironment_C99.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+// TODO maybe use the be api
|
|
+#include "FPEnvironment_C99.cpp"
|
|
#elif defined(POCO_OS_FAMILY_WINDOWS)
|
|
#include "FPEnvironment_WIN32.cpp"
|
|
#else
|
|
diff --git a/Foundation/src/File.cpp b/Foundation/src/File.cpp
|
|
index 7f96d5d..f4e9cdc 100644
|
|
--- a/Foundation/src/File.cpp
|
|
+++ b/Foundation/src/File.cpp
|
|
@@ -27,6 +27,9 @@
|
|
#include "File_VX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "File_UNIX.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+// TODO maybe use the be api
|
|
+#include "File_UNIX.cpp"
|
|
#endif
|
|
#include "Poco/Thread.h"
|
|
|
|
diff --git a/Foundation/src/File_UNIX.cpp b/Foundation/src/File_UNIX.cpp
|
|
index 090567b..90a34f1 100644
|
|
--- a/Foundation/src/File_UNIX.cpp
|
|
+++ b/Foundation/src/File_UNIX.cpp
|
|
@@ -23,7 +23,7 @@
|
|
#if defined(POCO_OS_FAMILY_BSD)
|
|
#include <sys/param.h>
|
|
#include <sys/mount.h>
|
|
-#elif (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX)
|
|
+#elif (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX) || (POCO_OS == POCO_OS_HAIKU)
|
|
#include <sys/statvfs.h>
|
|
#else
|
|
#include <sys/statfs.h>
|
|
@@ -35,7 +35,7 @@
|
|
#include <utime.h>
|
|
#include <cstring>
|
|
|
|
-#if (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX)
|
|
+#if (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX) || (POCO_OS == POCO_OS_HAIKU)
|
|
#define STATFSFN statvfs
|
|
#define STATFSSTRUCT statvfs
|
|
#else
|
|
diff --git a/Foundation/src/Mutex.cpp b/Foundation/src/Mutex.cpp
|
|
index 843562a..92b61e2 100644
|
|
--- a/Foundation/src/Mutex.cpp
|
|
+++ b/Foundation/src/Mutex.cpp
|
|
@@ -24,6 +24,7 @@
|
|
#elif defined(POCO_VXWORKS)
|
|
#include "Mutex_VX.cpp"
|
|
#else
|
|
+// TODO Be: use the native api?
|
|
#include "Mutex_POSIX.cpp"
|
|
#endif
|
|
|
|
diff --git a/Foundation/src/NamedEvent.cpp b/Foundation/src/NamedEvent.cpp
|
|
index 0cdeddb..494e78e 100644
|
|
--- a/Foundation/src/NamedEvent.cpp
|
|
+++ b/Foundation/src/NamedEvent.cpp
|
|
@@ -19,6 +19,9 @@
|
|
#include "NamedEvent_WIN32U.cpp"
|
|
#elif POCO_OS == POCO_OS_ANDROID
|
|
#include "NamedEvent_Android.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "NamedEvent_UNIX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "NamedEvent_UNIX.cpp"
|
|
#endif
|
|
diff --git a/Foundation/src/NamedEvent_UNIX.cpp b/Foundation/src/NamedEvent_UNIX.cpp
|
|
index b0cc100..14e526b 100644
|
|
--- a/Foundation/src/NamedEvent_UNIX.cpp
|
|
+++ b/Foundation/src/NamedEvent_UNIX.cpp
|
|
@@ -18,7 +18,7 @@
|
|
#include <fcntl.h>
|
|
#include <sys/stat.h>
|
|
#include <errno.h>
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)|| (POCO_OS == POCO_OS_HAIKU)
|
|
#include <semaphore.h>
|
|
#else
|
|
#include <unistd.h>
|
|
@@ -53,7 +53,7 @@ NamedEventImpl::NamedEventImpl(const std::string& name):
|
|
_name(name)
|
|
{
|
|
std::string fileName = getFileName();
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)|| (POCO_OS == POCO_OS_HAIKU)
|
|
_sem = sem_open(fileName.c_str(), O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, 0);
|
|
if ((long) _sem == (long) SEM_FAILED)
|
|
throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name);
|
|
@@ -86,7 +86,7 @@ NamedEventImpl::NamedEventImpl(const std::string& name):
|
|
|
|
NamedEventImpl::~NamedEventImpl()
|
|
{
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
sem_close(_sem);
|
|
#endif
|
|
}
|
|
@@ -94,7 +94,7 @@ NamedEventImpl::~NamedEventImpl()
|
|
|
|
void NamedEventImpl::setImpl()
|
|
{
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
if (sem_post(_sem) != 0)
|
|
throw SystemException("cannot set named event", _name);
|
|
#else
|
|
@@ -110,7 +110,7 @@ void NamedEventImpl::setImpl()
|
|
|
|
void NamedEventImpl::waitImpl()
|
|
{
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
int err;
|
|
do
|
|
{
|
|
diff --git a/Foundation/src/NamedMutex.cpp b/Foundation/src/NamedMutex.cpp
|
|
index 98c2f87..1b0c143 100644
|
|
--- a/Foundation/src/NamedMutex.cpp
|
|
+++ b/Foundation/src/NamedMutex.cpp
|
|
@@ -19,6 +19,9 @@
|
|
#include "NamedMutex_WIN32U.cpp"
|
|
#elif POCO_OS == POCO_OS_ANDROID
|
|
#include "NamedMutex_Android.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "NamedMutex_UNIX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "NamedMutex_UNIX.cpp"
|
|
#endif
|
|
diff --git a/Foundation/src/NamedMutex_UNIX.cpp b/Foundation/src/NamedMutex_UNIX.cpp
|
|
index 6466b2b..c6b5663 100644
|
|
--- a/Foundation/src/NamedMutex_UNIX.cpp
|
|
+++ b/Foundation/src/NamedMutex_UNIX.cpp
|
|
@@ -18,7 +18,7 @@
|
|
#include <fcntl.h>
|
|
#include <sys/stat.h>
|
|
#include <errno.h>
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
#include <semaphore.h>
|
|
#else
|
|
#include <unistd.h>
|
|
@@ -53,7 +53,7 @@ NamedMutexImpl::NamedMutexImpl(const std::string& name):
|
|
_name(name)
|
|
{
|
|
std::string fileName = getFileName();
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
_sem = sem_open(fileName.c_str(), O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, 1);
|
|
if ((long) _sem == (long) SEM_FAILED)
|
|
throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name);
|
|
@@ -91,7 +91,7 @@ NamedMutexImpl::NamedMutexImpl(const std::string& name):
|
|
|
|
NamedMutexImpl::~NamedMutexImpl()
|
|
{
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
sem_close(_sem);
|
|
#else
|
|
if (_owned) semctl(_semid, 0, IPC_RMID, 0);
|
|
@@ -101,7 +101,7 @@ NamedMutexImpl::~NamedMutexImpl()
|
|
|
|
void NamedMutexImpl::lockImpl()
|
|
{
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
int err;
|
|
do
|
|
{
|
|
@@ -127,7 +127,7 @@ void NamedMutexImpl::lockImpl()
|
|
|
|
bool NamedMutexImpl::tryLockImpl()
|
|
{
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
return sem_trywait(_sem) == 0;
|
|
#else
|
|
struct sembuf op;
|
|
@@ -141,7 +141,7 @@ bool NamedMutexImpl::tryLockImpl()
|
|
|
|
void NamedMutexImpl::unlockImpl()
|
|
{
|
|
-#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX)
|
|
+#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
if (sem_post(_sem) != 0)
|
|
throw SystemException("cannot unlock named mutex", _name);
|
|
#else
|
|
diff --git a/Foundation/src/Path.cpp b/Foundation/src/Path.cpp
|
|
index 7b85a65..05ffc7a 100644
|
|
--- a/Foundation/src/Path.cpp
|
|
+++ b/Foundation/src/Path.cpp
|
|
@@ -22,8 +22,10 @@
|
|
#endif
|
|
#include <algorithm>
|
|
|
|
-
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "Path_UNIX.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "Path_UNIX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_WINDOWS)
|
|
#if defined(_WIN32_WCE)
|
|
diff --git a/Foundation/src/PipeImpl.cpp b/Foundation/src/PipeImpl.cpp
|
|
index 0f43b45..0c8eb5d 100644
|
|
--- a/Foundation/src/PipeImpl.cpp
|
|
+++ b/Foundation/src/PipeImpl.cpp
|
|
@@ -21,6 +21,9 @@
|
|
#else
|
|
#include "PipeImpl_WIN32.cpp"
|
|
#endif
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "PipeImpl_POSIX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "PipeImpl_POSIX.cpp"
|
|
#else
|
|
diff --git a/Foundation/src/SharedLibrary.cpp b/Foundation/src/SharedLibrary.cpp
|
|
index a2bdce5..282e064 100644
|
|
--- a/Foundation/src/SharedLibrary.cpp
|
|
+++ b/Foundation/src/SharedLibrary.cpp
|
|
@@ -20,6 +20,9 @@
|
|
#include "SharedLibrary_HPUX.cpp"
|
|
#elif defined(POCO_VXWORKS)
|
|
#include "SharedLibrary_VX.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "SharedLibrary_UNIX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "SharedLibrary_UNIX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_WINDOWS)
|
|
diff --git a/Foundation/src/SharedMemory.cpp b/Foundation/src/SharedMemory.cpp
|
|
index da43a42..47e5be4 100644
|
|
--- a/Foundation/src/SharedMemory.cpp
|
|
+++ b/Foundation/src/SharedMemory.cpp
|
|
@@ -18,6 +18,9 @@
|
|
#include "SharedMemory_DUMMY.cpp"
|
|
#elif defined(POCO_OS_FAMILY_WINDOWS)
|
|
#include "SharedMemory_WIN32.cpp"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+//TODO use native api
|
|
+#include "SharedMemory_POSIX.cpp"
|
|
#elif defined(POCO_OS_FAMILY_UNIX)
|
|
#include "SharedMemory_POSIX.cpp"
|
|
#else
|
|
diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp
|
|
index ceab76e..2630d35 100644
|
|
--- a/Foundation/src/Thread_POSIX.cpp
|
|
+++ b/Foundation/src/Thread_POSIX.cpp
|
|
@@ -65,7 +65,9 @@ namespace
|
|
namespace {
|
|
void setThreadName(pthread_t thread, const std::string& threadName)
|
|
{
|
|
-#if (POCO_OS == POCO_OS_MAC_OS_X)
|
|
+#if POCO_OS == POCO_OS_HAIKU
|
|
+ return; // TODO allow thead names to be set
|
|
+#elif (POCO_OS == POCO_OS_MAC_OS_X)
|
|
pthread_setname_np(threadName.c_str()); // __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2)
|
|
#else
|
|
if (pthread_setname_np(thread, threadName.c_str()) == ERANGE && threadName.size() > 15)
|
|
@@ -277,7 +279,7 @@ long ThreadImpl::currentOsTidImpl()
|
|
#elif POCO_OS == POCO_OS_MAC_OS_X
|
|
return ::pthread_mach_thread_np(::pthread_self());
|
|
#else
|
|
- return ::pthread_self();
|
|
+ return (long) ::pthread_self();
|
|
#endif
|
|
}
|
|
|
|
@@ -289,7 +291,7 @@ void ThreadImpl::sleepImpl(long milliseconds)
|
|
interval.tv_sec = milliseconds / 1000;
|
|
interval.tv_nsec = (milliseconds % 1000)*1000000;
|
|
pthread_delay_np(&interval);
|
|
-#elif POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_MAC_OS_X || POCO_OS == POCO_OS_QNX || POCO_OS == POCO_OS_VXWORKS
|
|
+#elif POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_MAC_OS_X || POCO_OS == POCO_OS_QNX || POCO_OS == POCO_OS_VXWORKS || POCO_OS == POCO_OS_HAIKU
|
|
Poco::Timespan remainingTime(1000*Poco::Timespan::TimeDiff(milliseconds));
|
|
int rc;
|
|
do
|
|
diff --git a/Foundation/src/Timestamp.cpp b/Foundation/src/Timestamp.cpp
|
|
index da05a56..26557fa 100644
|
|
--- a/Foundation/src/Timestamp.cpp
|
|
+++ b/Foundation/src/Timestamp.cpp
|
|
@@ -19,7 +19,7 @@
|
|
#undef min
|
|
#undef max
|
|
#include <limits>
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if (defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_FAMILY_BE))
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
#if defined(POCO_VXWORKS)
|
|
diff --git a/Util/src/Application.cpp b/Util/src/Application.cpp
|
|
index fe61ddd..82ebed7 100644
|
|
--- a/Util/src/Application.cpp
|
|
+++ b/Util/src/Application.cpp
|
|
@@ -334,7 +334,7 @@ Application::WindowSize Application::windowSize()
|
|
size.width = csbi.srWindow.Right - csbi.srWindow.Left + 1;
|
|
size.height = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;
|
|
}
|
|
-#elif defined(POCO_OS_FAMILY_UNIX)
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) && (!defined(POCO_OS_FAMILY_BE))
|
|
struct winsize winsz;
|
|
if (ioctl(0, TIOCGWINSZ , &winsz) != -1)
|
|
{
|
|
--
|
|
2.42.1
|
|
|
|
|
|
From 43bac2b573c7092d6572e568bef449082d3def85 Mon Sep 17 00:00:00 2001
|
|
From: Maite Gamper <victor@wenzeslaus.de>
|
|
Date: Sat, 25 Mar 2023 07:03:07 +0100
|
|
Subject: poco: try to use GNUInstallDirs
|
|
|
|
|
|
diff --git a/ActiveRecord/Compiler/CMakeLists.txt b/ActiveRecord/Compiler/CMakeLists.txt
|
|
index 40a8b23..667392f 100644
|
|
--- a/ActiveRecord/Compiler/CMakeLists.txt
|
|
+++ b/ActiveRecord/Compiler/CMakeLists.txt
|
|
@@ -20,7 +20,7 @@ install(
|
|
TARGETS ActiveRecordCompiler EXPORT "ActiveRecordCompiler"
|
|
LIBRARY DESTINATION lib${LIB_SUFFIX}
|
|
ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
|
- RUNTIME DESTINATION bin
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
BUNDLE DESTINATION bin
|
|
INCLUDES DESTINATION include
|
|
)
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index c552091..208b754 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -482,12 +482,13 @@ else()
|
|
endif()
|
|
|
|
configure_file(cmake/${PROJECT_NAME}Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake" @ONLY)
|
|
+include(GNUInstallDirs)
|
|
install(
|
|
FILES
|
|
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake
|
|
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}ConfigVersion.cmake
|
|
DESTINATION
|
|
- "${PocoConfigPackageLocation}"
|
|
+ "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
|
COMPONENT
|
|
Devel
|
|
)
|
|
diff --git a/Encodings/Compiler/CMakeLists.txt b/Encodings/Compiler/CMakeLists.txt
|
|
index fa4e85b..d4ff144 100644
|
|
--- a/Encodings/Compiler/CMakeLists.txt
|
|
+++ b/Encodings/Compiler/CMakeLists.txt
|
|
@@ -14,7 +14,7 @@ install(
|
|
TARGETS EncodingsCompiler EXPORT "EncodingsCompilerTargets"
|
|
LIBRARY DESTINATION lib${LIB_SUFFIX}
|
|
ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
|
- RUNTIME DESTINATION bin
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
BUNDLE DESTINATION bin
|
|
INCLUDES DESTINATION include
|
|
)
|
|
diff --git a/PageCompiler/CMakeLists.txt b/PageCompiler/CMakeLists.txt
|
|
index 48379eb..423fe99 100644
|
|
--- a/PageCompiler/CMakeLists.txt
|
|
+++ b/PageCompiler/CMakeLists.txt
|
|
@@ -22,7 +22,7 @@ install(
|
|
TARGETS PageCompiler EXPORT PageCompilerTargets
|
|
LIBRARY DESTINATION lib${LIB_SUFFIX}
|
|
ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
|
- RUNTIME DESTINATION bin
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
BUNDLE DESTINATION bin
|
|
INCLUDES DESTINATION include
|
|
)
|
|
diff --git a/PageCompiler/File2Page/CMakeLists.txt b/PageCompiler/File2Page/CMakeLists.txt
|
|
index 6b69257..b56fe43 100644
|
|
--- a/PageCompiler/File2Page/CMakeLists.txt
|
|
+++ b/PageCompiler/File2Page/CMakeLists.txt
|
|
@@ -20,7 +20,7 @@ install(
|
|
TARGETS File2Page EXPORT File2PageTargets
|
|
LIBRARY DESTINATION lib${LIB_SUFFIX}
|
|
ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
|
- RUNTIME DESTINATION bin
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
BUNDLE DESTINATION bin
|
|
INCLUDES DESTINATION include
|
|
)
|
|
diff --git a/PocoDoc/CMakeLists.txt b/PocoDoc/CMakeLists.txt
|
|
index 49ad7b4..f87d040 100644
|
|
--- a/PocoDoc/CMakeLists.txt
|
|
+++ b/PocoDoc/CMakeLists.txt
|
|
@@ -10,7 +10,7 @@ install(
|
|
TARGETS PocoDoc EXPORT PocoDocTargets
|
|
LIBRARY DESTINATION lib${LIB_SUFFIX}
|
|
ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
|
- RUNTIME DESTINATION bin
|
|
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
BUNDLE DESTINATION bin
|
|
INCLUDES DESTINATION include
|
|
)
|
|
diff --git a/cmake/PocoMacros.cmake b/cmake/PocoMacros.cmake
|
|
index 0ef354e..71a2078 100644
|
|
--- a/cmake/PocoMacros.cmake
|
|
+++ b/cmake/PocoMacros.cmake
|
|
@@ -236,18 +236,19 @@ else()
|
|
set(PocoConfigPackageLocation "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
|
|
endif()
|
|
|
|
+include(GNUInstallDirs)
|
|
install(
|
|
EXPORT "${target_name}Targets"
|
|
FILE "${PROJECT_NAME}${target_name}Targets.cmake"
|
|
NAMESPACE "${PROJECT_NAME}::"
|
|
- DESTINATION "${PocoConfigPackageLocation}"
|
|
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
|
)
|
|
|
|
install(
|
|
FILES
|
|
"${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}Config.cmake"
|
|
"${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}ConfigVersion.cmake"
|
|
- DESTINATION "${PocoConfigPackageLocation}"
|
|
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
|
COMPONENT Devel
|
|
)
|
|
|
|
@@ -264,18 +265,18 @@ endmacro()
|
|
macro(POCO_INSTALL target_name)
|
|
install(
|
|
DIRECTORY include/Poco
|
|
- DESTINATION include
|
|
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
COMPONENT Devel
|
|
PATTERN ".svn" EXCLUDE
|
|
)
|
|
|
|
+include(GNUInstallDirs)
|
|
install(
|
|
TARGETS "${target_name}" EXPORT "${target_name}Targets"
|
|
- LIBRARY DESTINATION lib${LIB_SUFFIX}
|
|
- ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
|
- RUNTIME DESTINATION bin
|
|
- BUNDLE DESTINATION bin
|
|
- INCLUDES DESTINATION include
|
|
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
|
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
|
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
|
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
|
)
|
|
|
|
if(MSVC)
|
|
@@ -297,7 +298,7 @@ macro(POCO_INSTALL_PDB target_name)
|
|
if("${type}" STREQUAL "SHARED_LIBRARY" OR "${type}" STREQUAL "EXECUTABLE")
|
|
install(
|
|
FILES $<TARGET_PDB_FILE:${target_name}>
|
|
- DESTINATION bin
|
|
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
COMPONENT Devel
|
|
OPTIONAL
|
|
)
|
|
--
|
|
2.42.1
|
|
|
|
|
|
From 6550b90bcf0f7aa5be83dc6d38b68f024b8da1bd Mon Sep 17 00:00:00 2001
|
|
From: Maite Gamper <victor@wenzeslaus.de>
|
|
Date: Wed, 19 Apr 2023 22:01:07 +0200
|
|
Subject: poco: hopefully make networking work somewhat
|
|
|
|
|
|
diff --git a/Net/CMakeLists.txt b/Net/CMakeLists.txt
|
|
index 237df1c..c893385 100644
|
|
--- a/Net/CMakeLists.txt
|
|
+++ b/Net/CMakeLists.txt
|
|
@@ -36,6 +36,10 @@ if(WIN32)
|
|
endif()
|
|
endif(WIN32)
|
|
|
|
+if(HAIKU)
|
|
+ target_link_libraries(Net PUBLIC network)
|
|
+endif(HAIKU)
|
|
+
|
|
target_include_directories(Net
|
|
PUBLIC
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
diff --git a/Net/include/Poco/Net/Net.h b/Net/include/Poco/Net/Net.h
|
|
index 58e052a..9c9d77c 100644
|
|
--- a/Net/include/Poco/Net/Net.h
|
|
+++ b/Net/include/Poco/Net/Net.h
|
|
@@ -127,7 +127,7 @@ POCO_NET_FORCE_SYMBOL(pocoNetworkInitializer)
|
|
//
|
|
// Define POCO_NET_HAS_INTERFACE for platforms that have network interface detection implemented.
|
|
//
|
|
-#if defined(POCO_OS_FAMILY_WINDOWS) || (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_ANDROID) || defined(POCO_OS_FAMILY_BSD) || (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX)
|
|
+#if defined(POCO_OS_FAMILY_WINDOWS) || (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_ANDROID) || defined(POCO_OS_FAMILY_BSD) || (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_QNX) || (POCO_OS == POCO_OS_HAIKU)
|
|
#define POCO_NET_HAS_INTERFACE
|
|
#endif
|
|
|
|
diff --git a/Net/include/Poco/Net/SocketAddress.h b/Net/include/Poco/Net/SocketAddress.h
|
|
index c6d3069..db217af 100644
|
|
--- a/Net/include/Poco/Net/SocketAddress.h
|
|
+++ b/Net/include/Poco/Net/SocketAddress.h
|
|
@@ -49,7 +49,7 @@ public:
|
|
#if defined(POCO_HAVE_IPv6)
|
|
static const Family IPv6 = AddressFamily::IPv6;
|
|
#endif
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
static const Family UNIX_LOCAL = AddressFamily::UNIX_LOCAL;
|
|
#endif
|
|
|
|
@@ -181,7 +181,7 @@ public:
|
|
enum
|
|
{
|
|
MAX_ADDRESS_LENGTH =
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
sizeof(struct sockaddr_un)
|
|
#elif defined(POCO_HAVE_IPv6)
|
|
sizeof(struct sockaddr_in6)
|
|
@@ -214,7 +214,7 @@ private:
|
|
void newIPv6(const IPAddress& hostAddress, Poco::UInt16 portNumber);
|
|
#endif
|
|
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
void newLocal(const sockaddr_un* sockAddr);
|
|
void newLocal(const std::string& path);
|
|
#endif
|
|
@@ -265,7 +265,7 @@ inline void SocketAddress::newIPv6(const IPAddress& hostAddress, Poco::UInt16 po
|
|
#endif // POCO_HAVE_IPv6
|
|
|
|
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
inline void SocketAddress::newLocal(const sockaddr_un* sockAddr)
|
|
{
|
|
_pImpl = new Poco::Net::Impl::LocalSocketAddressImpl(sockAddr);
|
|
@@ -281,7 +281,7 @@ inline void SocketAddress::newLocal(const std::string& path)
|
|
|
|
inline bool SocketAddress::operator == (const SocketAddress& socketAddress) const
|
|
{
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
if (family() == UNIX_LOCAL)
|
|
return toString() == socketAddress.toString();
|
|
else
|
|
diff --git a/Net/include/Poco/Net/SocketAddressImpl.h b/Net/include/Poco/Net/SocketAddressImpl.h
|
|
index b065ca2..8d33c0a 100644
|
|
--- a/Net/include/Poco/Net/SocketAddressImpl.h
|
|
+++ b/Net/include/Poco/Net/SocketAddressImpl.h
|
|
@@ -177,7 +177,7 @@ inline SocketAddressImpl::Family IPv6SocketAddressImpl::family() const
|
|
#endif // POCO_HAVE_IPv6
|
|
|
|
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
|
|
|
|
class Net_API LocalSocketAddressImpl: public SocketAddressImpl
|
|
diff --git a/Net/include/Poco/Net/SocketDefs.h b/Net/include/Poco/Net/SocketDefs.h
|
|
index d024a24..0d9f38b 100644
|
|
--- a/Net/include/Poco/Net/SocketDefs.h
|
|
+++ b/Net/include/Poco/Net/SocketDefs.h
|
|
@@ -132,7 +132,7 @@
|
|
#define POCO_TRY_AGAIN TRY_AGAIN
|
|
#define POCO_NO_RECOVERY NO_RECOVERY
|
|
#define POCO_NO_DATA NO_DATA
|
|
-#elif defined(POCO_OS_FAMILY_UNIX)
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
#include <unistd.h>
|
|
#include <errno.h>
|
|
#include <sys/types.h>
|
|
@@ -148,7 +148,7 @@
|
|
#include <netinet/in.h>
|
|
#include <netinet/tcp.h>
|
|
#include <netdb.h>
|
|
- #if defined(POCO_OS_FAMILY_UNIX)
|
|
+ #if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
#if (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_ANDROID)
|
|
// Net/src/NetworkInterface.cpp changed #include <linux/if.h> to #include <net/if.h>
|
|
// no more conflict, can use #include <net/if.h> here
|
|
@@ -165,6 +165,8 @@
|
|
#if (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_MAC_OS_X)
|
|
#include <sys/sockio.h>
|
|
#include <sys/filio.h>
|
|
+ #elif (POCO_OS == POCO_OS_HAIKU)
|
|
+ #include <sys/sockio.h>
|
|
#endif
|
|
#define POCO_INVALID_SOCKET -1
|
|
#define poco_socket_t int
|
|
@@ -277,7 +279,7 @@
|
|
#if defined(POCO_HAVE_IPv6)
|
|
#define poco_set_sin6_len(pSA) (pSA)->sin6_len = sizeof(struct sockaddr_in6)
|
|
#endif
|
|
- #if defined(POCO_OS_FAMILY_UNIX)
|
|
+ #if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
#define poco_set_sun_len(pSA, len) (pSA)->sun_len = (len)
|
|
#endif
|
|
#else
|
|
@@ -343,7 +345,7 @@
|
|
|
|
|
|
#if !defined(s6_addr32)
|
|
- #if defined(POCO_OS_FAMILY_UNIX)
|
|
+ #if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
#if (POCO_OS == POCO_OS_SOLARIS)
|
|
#define s6_addr32 _S6_un._S6_u32
|
|
#else
|
|
@@ -359,7 +361,7 @@ namespace Net {
|
|
|
|
#if defined(POCO_OS_FAMILY_WINDOWS)
|
|
typedef WSABUF SocketBuf;
|
|
-#elif defined(POCO_OS_FAMILY_UNIX) // TODO: may need more refinement
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU) // TODO: may need more refinement
|
|
typedef iovec SocketBuf;
|
|
#endif
|
|
|
|
@@ -374,7 +376,7 @@ struct AddressFamily
|
|
{
|
|
UNKNOWN = AF_UNSPEC,
|
|
/// Unspecified family
|
|
- #if defined(POCO_OS_FAMILY_UNIX)
|
|
+ #if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
UNIX_LOCAL = AF_UNIX,
|
|
/// UNIX domain socket address family. Available on UNIX/POSIX platforms only.
|
|
#endif
|
|
diff --git a/Net/include/Poco/Net/SocketImpl.h b/Net/include/Poco/Net/SocketImpl.h
|
|
index 5d75e7c..3a2ed24 100644
|
|
--- a/Net/include/Poco/Net/SocketImpl.h
|
|
+++ b/Net/include/Poco/Net/SocketImpl.h
|
|
@@ -454,7 +454,7 @@ public:
|
|
void ioctl(poco_ioctl_request_t request, void* arg);
|
|
/// A wrapper for the ioctl system call.
|
|
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
int fcntl(poco_fcntl_request_t request);
|
|
/// A wrapper for the fcntl system call.
|
|
|
|
diff --git a/Net/src/DatagramSocketImpl.cpp b/Net/src/DatagramSocketImpl.cpp
|
|
index 9a4dfc1..bef76be 100644
|
|
--- a/Net/src/DatagramSocketImpl.cpp
|
|
+++ b/Net/src/DatagramSocketImpl.cpp
|
|
@@ -36,7 +36,7 @@ DatagramSocketImpl::DatagramSocketImpl(SocketAddress::Family family)
|
|
else if (family == SocketAddress::IPv6)
|
|
init(AF_INET6);
|
|
#endif
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
else if (family == SocketAddress::UNIX_LOCAL)
|
|
init(AF_UNIX);
|
|
#endif
|
|
diff --git a/Net/src/IPAddressImpl.cpp b/Net/src/IPAddressImpl.cpp
|
|
index b94b7e9..f019247 100644
|
|
--- a/Net/src/IPAddressImpl.cpp
|
|
+++ b/Net/src/IPAddressImpl.cpp
|
|
@@ -519,7 +519,7 @@ unsigned IPv6AddressImpl::prefixLength() const
|
|
{
|
|
unsigned bits = 0;
|
|
unsigned bitPos = 128;
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
for (int i = 3; i >= 0; --i)
|
|
{
|
|
unsigned addr = ntohl(_addr.s6_addr32[i]);
|
|
diff --git a/Net/src/MulticastSocket.cpp b/Net/src/MulticastSocket.cpp
|
|
index f624026..348ad63 100644
|
|
--- a/Net/src/MulticastSocket.cpp
|
|
+++ b/Net/src/MulticastSocket.cpp
|
|
@@ -53,7 +53,7 @@ MulticastSocket::MulticastSocket()
|
|
|
|
MulticastSocket::MulticastSocket(SocketAddress::Family family): DatagramSocket(family)
|
|
{
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
if (family == SocketAddress::UNIX_LOCAL)
|
|
throw Poco::InvalidArgumentException("Cannot create a MulticastSocket with UNIX_LOCAL socket");
|
|
#endif
|
|
diff --git a/Net/src/NetworkInterface.cpp b/Net/src/NetworkInterface.cpp
|
|
index 460250d..c8a3ad7 100644
|
|
--- a/Net/src/NetworkInterface.cpp
|
|
+++ b/Net/src/NetworkInterface.cpp
|
|
@@ -485,12 +485,16 @@ void NetworkInterfaceImpl::setRunning(bool running)
|
|
|
|
void NetworkInterfaceImpl::setFlags(short flags)
|
|
{
|
|
-#ifdef POCO_OS_FAMILY_UNIX
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
_broadcast = ((flags & IFF_BROADCAST) != 0);
|
|
_loopback = ((flags & IFF_LOOPBACK) != 0);
|
|
_multicast = ((flags & IFF_MULTICAST) != 0);
|
|
_pointToPoint = ((flags & IFF_POINTOPOINT) != 0);
|
|
+#if !(POCO_OS == POCO_OS_HAIKU)
|
|
_running = ((flags & IFF_RUNNING) != 0);
|
|
+#else
|
|
+ _running = ((flags & IFF_LINK) != 0);
|
|
+#endif
|
|
_up = ((flags & IFF_UP) != 0);
|
|
#endif
|
|
}
|
|
@@ -1322,7 +1326,7 @@ NetworkInterface::NetworkInterfaceList NetworkInterface::list()
|
|
} } // namespace Poco::Net
|
|
*/
|
|
|
|
-#elif defined(POCO_OS_FAMILY_BSD) || (POCO_OS == POCO_OS_QNX) || (POCO_OS == POCO_OS_SOLARIS)
|
|
+#elif defined(POCO_OS_FAMILY_BSD) || (POCO_OS == POCO_OS_QNX) || (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_HAIKU)
|
|
//
|
|
// BSD variants, QNX(?) and Solaris
|
|
//
|
|
@@ -1349,14 +1353,18 @@ NetworkInterface::Type fromNative(u_char nativeType)
|
|
{
|
|
#ifndef POCO_NO_NET_IFTYPES
|
|
case IFT_ETHER: return NetworkInterface::NI_TYPE_ETHERNET_CSMACD;
|
|
+#ifndef POCO_OS_HAIKU
|
|
case IFT_ISO88025: return NetworkInterface::NI_TYPE_ISO88025_TOKENRING;
|
|
case IFT_FRELAY: return NetworkInterface::NI_TYPE_FRAMERELAY;
|
|
+#endif // POCO_OS_HAIKU
|
|
case IFT_PPP: return NetworkInterface::NI_TYPE_PPP;
|
|
case IFT_LOOP: return NetworkInterface::NI_TYPE_SOFTWARE_LOOPBACK;
|
|
+#ifndef POCO_OS_HAIKU
|
|
case IFT_ATM: return NetworkInterface::NI_TYPE_ATM;
|
|
#if (POCO_OS != POCO_OS_SOLARIS)
|
|
case IFT_IEEE1394: return NetworkInterface::NI_TYPE_IEEE1394;
|
|
#endif
|
|
+#endif // POCO_OS_HAIKU
|
|
#endif
|
|
default: return NetworkInterface::NI_TYPE_OTHER;
|
|
|
|
diff --git a/Net/src/Socket.cpp b/Net/src/Socket.cpp
|
|
index b848cb6..38d7854 100644
|
|
--- a/Net/src/Socket.cpp
|
|
+++ b/Net/src/Socket.cpp
|
|
@@ -334,7 +334,7 @@ void Socket::destroyBufVec(SocketBufVec& buf)
|
|
{
|
|
#if defined(POCO_OS_FAMILY_WINDOWS)
|
|
free(it->buf);
|
|
-#elif defined(POCO_OS_FAMILY_UNIX)
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
free(it->iov_base);
|
|
#endif
|
|
}
|
|
@@ -348,7 +348,7 @@ SocketBuf Socket::makeBuffer(void* buffer, std::size_t length)
|
|
#if defined(POCO_OS_FAMILY_WINDOWS)
|
|
ret.buf = reinterpret_cast<char*>(buffer);
|
|
ret.len = static_cast<ULONG>(length);
|
|
-#elif defined(POCO_OS_FAMILY_UNIX)
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
ret.iov_base = buffer;
|
|
ret.iov_len = length;
|
|
#else
|
|
diff --git a/Net/src/SocketAddress.cpp b/Net/src/SocketAddress.cpp
|
|
index 487f5ae..87477ab 100644
|
|
--- a/Net/src/SocketAddress.cpp
|
|
+++ b/Net/src/SocketAddress.cpp
|
|
@@ -33,7 +33,7 @@ using Poco::Net::Impl::IPv4SocketAddressImpl;
|
|
#ifdef POCO_HAVE_IPv6
|
|
using Poco::Net::Impl::IPv6SocketAddressImpl;
|
|
#endif
|
|
-#ifdef POCO_OS_FAMILY_UNIX
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
using Poco::Net::Impl::LocalSocketAddressImpl;
|
|
#endif
|
|
|
|
@@ -63,7 +63,7 @@ const SocketAddress::Family SocketAddress::IPv4;
|
|
#if defined(POCO_HAVE_IPv6)
|
|
const SocketAddress::Family SocketAddress::IPv6;
|
|
#endif
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
const SocketAddress::Family SocketAddress::UNIX_LOCAL;
|
|
#endif
|
|
#endif
|
|
@@ -143,7 +143,7 @@ SocketAddress::SocketAddress(const SocketAddress& socketAddress)
|
|
else if (socketAddress.family() == IPv6)
|
|
newIPv6(reinterpret_cast<const sockaddr_in6*>(socketAddress.addr()));
|
|
#endif
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
else if (socketAddress.family() == UNIX_LOCAL)
|
|
newLocal(reinterpret_cast<const sockaddr_un*>(socketAddress.addr()));
|
|
#endif
|
|
@@ -164,7 +164,7 @@ SocketAddress::SocketAddress(const struct sockaddr* sockAddr, poco_socklen_t len
|
|
else if (length == sizeof(struct sockaddr_in6) && sockAddr->sa_family == AF_INET6)
|
|
newIPv6(reinterpret_cast<const struct sockaddr_in6*>(sockAddr));
|
|
#endif
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
else if (length > 0 && length <= sizeof(struct sockaddr_un) && sockAddr->sa_family == AF_UNIX)
|
|
newLocal(reinterpret_cast<const sockaddr_un*>(sockAddr));
|
|
#endif
|
|
@@ -181,7 +181,7 @@ bool SocketAddress::operator < (const SocketAddress& socketAddress) const
|
|
{
|
|
if (family() < socketAddress.family()) return true;
|
|
if (family() > socketAddress.family()) return false;
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
if (family() == UNIX_LOCAL) return toString() < socketAddress.toString();
|
|
#endif
|
|
if (host() < socketAddress.host()) return true;
|
|
@@ -200,7 +200,7 @@ SocketAddress& SocketAddress::operator = (const SocketAddress& socketAddress)
|
|
else if (socketAddress.family() == IPv6)
|
|
newIPv6(reinterpret_cast<const sockaddr_in6*>(socketAddress.addr()));
|
|
#endif
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
else if (socketAddress.family() == UNIX_LOCAL)
|
|
newLocal(reinterpret_cast<const sockaddr_un*>(socketAddress.addr()));
|
|
#endif
|
|
@@ -325,7 +325,7 @@ void SocketAddress::init(Family fam, const std::string& hostAddress, Poco::UInt1
|
|
|
|
void SocketAddress::init(Family fam, const std::string& address)
|
|
{
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
if (fam == UNIX_LOCAL)
|
|
{
|
|
newLocal(address);
|
|
@@ -369,7 +369,7 @@ void SocketAddress::init(const std::string& hostAndPort)
|
|
std::string::const_iterator it = hostAndPort.begin();
|
|
std::string::const_iterator end = hostAndPort.end();
|
|
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
if (*it == '/')
|
|
{
|
|
newLocal(hostAndPort);
|
|
diff --git a/Net/src/SocketAddressImpl.cpp b/Net/src/SocketAddressImpl.cpp
|
|
index 5769017..ae10af3 100644
|
|
--- a/Net/src/SocketAddressImpl.cpp
|
|
+++ b/Net/src/SocketAddressImpl.cpp
|
|
@@ -127,7 +127,7 @@ std::string IPv6SocketAddressImpl::toString() const
|
|
#endif // POCO_HAVE_IPv6
|
|
|
|
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
|
|
|
|
//
|
|
diff --git a/Net/src/SocketImpl.cpp b/Net/src/SocketImpl.cpp
|
|
index 7bc99f3..b8d2d62 100644
|
|
--- a/Net/src/SocketImpl.cpp
|
|
+++ b/Net/src/SocketImpl.cpp
|
|
@@ -360,7 +360,7 @@ int SocketImpl::sendBytes(const SocketBufVec& buffers, int flags)
|
|
static_cast<DWORD>(flags), 0, 0);
|
|
if (rc == SOCKET_ERROR) error();
|
|
rc = sent;
|
|
-#elif defined(POCO_OS_FAMILY_UNIX)
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
rc = writev(_sockfd, &buffers[0], static_cast<int>(buffers.size()));
|
|
#endif
|
|
}
|
|
@@ -410,7 +410,7 @@ int SocketImpl::receiveBytes(SocketBufVec& buffers, int flags)
|
|
&recvd, &dwFlags, 0, 0);
|
|
if (rc == SOCKET_ERROR) error();
|
|
rc = recvd;
|
|
-#elif defined(POCO_OS_FAMILY_UNIX)
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
rc = readv(_sockfd, &buffers[0], static_cast<int>(buffers.size()));
|
|
#endif
|
|
}
|
|
@@ -491,7 +491,7 @@ int SocketImpl::sendTo(const SocketBufVec& buffers, const SocketAddress& address
|
|
address.addr(), address.length(), 0, 0);
|
|
if (rc == SOCKET_ERROR) error();
|
|
rc = sent;
|
|
-#elif defined(POCO_OS_FAMILY_UNIX)
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
struct msghdr msgHdr;
|
|
msgHdr.msg_name = const_cast<sockaddr*>(address.addr());
|
|
msgHdr.msg_namelen = address.length();
|
|
@@ -577,7 +577,7 @@ int SocketImpl::receiveFrom(SocketBufVec& buffers, struct sockaddr** pSA, poco_s
|
|
&recvd, &dwFlags, *pSA, *ppSALen, 0, 0);
|
|
if (rc == SOCKET_ERROR) error();
|
|
rc = recvd;
|
|
-#elif defined(POCO_OS_FAMILY_UNIX)
|
|
+#elif defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
struct msghdr msgHdr;
|
|
msgHdr.msg_name = *pSA;
|
|
msgHdr.msg_namelen = **ppSALen;
|
|
@@ -1133,7 +1133,7 @@ bool SocketImpl::getBroadcast()
|
|
|
|
void SocketImpl::setBlocking(bool flag)
|
|
{
|
|
-#if !defined(POCO_OS_FAMILY_UNIX)
|
|
+#if !defined(POCO_OS_FAMILY_UNIX) || !(POCO_OS == POCO_OS_HAIKU)
|
|
int arg = flag ? 0 : 1;
|
|
ioctl(FIONBIO, arg);
|
|
#else
|
|
@@ -1205,7 +1205,7 @@ void SocketImpl::ioctl(poco_ioctl_request_t request, void* arg)
|
|
}
|
|
|
|
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
int SocketImpl::fcntl(poco_fcntl_request_t request)
|
|
{
|
|
int rc = ::fcntl(_sockfd, request);
|
|
@@ -1325,7 +1325,7 @@ void SocketImpl::error(int code, const std::string& arg)
|
|
throw NetException("Host is down", arg, code);
|
|
case POCO_EHOSTUNREACH:
|
|
throw NetException("No route to host", arg, code);
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || defined(POCO_OS_HAIKU)
|
|
case EPIPE:
|
|
throw IOException("Broken pipe", code);
|
|
case EBADF:
|
|
diff --git a/Net/src/StreamSocketImpl.cpp b/Net/src/StreamSocketImpl.cpp
|
|
index 6e86c8f..00973ba 100644
|
|
--- a/Net/src/StreamSocketImpl.cpp
|
|
+++ b/Net/src/StreamSocketImpl.cpp
|
|
@@ -34,7 +34,7 @@ StreamSocketImpl::StreamSocketImpl(SocketAddress::Family family)
|
|
else if (family == SocketAddress::IPv6)
|
|
init(AF_INET6);
|
|
#endif
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
else if (family == SocketAddress::UNIX_LOCAL)
|
|
init(AF_UNIX);
|
|
#endif
|
|
diff --git a/Net/src/TCPServer.cpp b/Net/src/TCPServer.cpp
|
|
index 71c91f7..65c9a3f 100644
|
|
--- a/Net/src/TCPServer.cpp
|
|
+++ b/Net/src/TCPServer.cpp
|
|
@@ -139,7 +139,7 @@ void TCPServer::run()
|
|
if (!_pConnectionFilter || _pConnectionFilter->accept(ss))
|
|
{
|
|
// enable nodelay per default: OSX really needs that
|
|
-#if defined(POCO_OS_FAMILY_UNIX)
|
|
+#if defined(POCO_OS_FAMILY_UNIX) || (POCO_OS == POCO_OS_HAIKU)
|
|
if (ss.address().family() != AddressFamily::UNIX_LOCAL)
|
|
#endif
|
|
{
|
|
--
|
|
2.42.1
|
|
|
|
|
|
From 7c44f86c1f5a117ee920feeb0b6821d3afe1936b Mon Sep 17 00:00:00 2001
|
|
From: Maite Gamper <victor@wenzeslaus.de>
|
|
Date: Fri, 28 Apr 2023 22:33:11 +0200
|
|
Subject: change an include for the debugger
|
|
|
|
|
|
diff --git a/Foundation/src/Debugger.cpp b/Foundation/src/Debugger.cpp
|
|
index 17ddbe1..1f9cf61 100644
|
|
--- a/Foundation/src/Debugger.cpp
|
|
+++ b/Foundation/src/Debugger.cpp
|
|
@@ -18,11 +18,11 @@
|
|
#include <cstdio>
|
|
#if defined(POCO_OS_FAMILY_WINDOWS)
|
|
#include "Poco/UnWindows.h"
|
|
+#elif defined(POCO_OS_FAMILY_BE)
|
|
+ #include <kernel/OS.h>
|
|
#elif defined(POCO_OS_FAMILY_UNIX) && !defined(POCO_VXWORKS)
|
|
#include <unistd.h>
|
|
#include <signal.h>
|
|
-#elif defined(POCO_OS_FAMILY_BE)
|
|
- #include <OS.h>
|
|
#endif
|
|
#include "Poco/UnicodeConverter.h"
|
|
|
|
--
|
|
2.42.1
|
|
|