[Scummvm-git-logs] scummvm master -> bb6740bad201b81753a7a13066b9ff9c77032bd6
sev-
noreply at scummvm.org
Sun Jun 14 22:19:35 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
bb6740bad2 MORPHOS: Enet support
Commit: bb6740bad201b81753a7a13066b9ff9c77032bd6
https://github.com/scummvm/scummvm/commit/bb6740bad201b81753a7a13066b9ff9c77032bd6
Author: BeWorld (36823759+BeWorld2018 at users.noreply.github.com)
Date: 2026-06-15T00:19:31+02:00
Commit Message:
MORPHOS: Enet support
Changed paths:
backends/networking/enet/source/unix.cpp
backends/networking/enet/source/unix.h
diff --git a/backends/networking/enet/source/unix.cpp b/backends/networking/enet/source/unix.cpp
index 1487315b634..fe6a178df7a 100644
--- a/backends/networking/enet/source/unix.cpp
+++ b/backends/networking/enet/source/unix.cpp
@@ -17,6 +17,27 @@
#define ENET_BUILDING_LIB 1
#include "enet.h"
+#if defined(MORPHOS)
+#include <proto/socket.h>
+#include <net/socketbasetags.h>
+
+typedef LONG socklen_t;
+#define HAS_SOCKLEN_T 1
+
+#include <proto/exec.h>
+extern struct Library *SocketBase;
+
+#define ioctl(d, request, argp) IoctlSocket((d), (request), (char *)argp)
+#define close CloseSocket
+
+int inet_aton(const char *cp, struct in_addr *addr)
+{
+ addr->s_addr = inet_addr((const UBYTE*)cp);
+ return (addr->s_addr == INADDR_NONE) ? 0 : 1;
+}
+
+#endif
+
#ifdef __APPLE__
#ifdef HAS_POLL
#undef HAS_POLL
@@ -72,12 +93,30 @@ static enet_uint32 timeBase = 0;
int
enet_initialize (void)
{
+#if defined(MORPHOS)
+ SocketBase = OpenLibrary("bsdsocket.library", 0);
+ if (!SocketBase)
+ return -1;
+
+ if (SocketBaseTags(SBTM_SETVAL(SBTC_ERRNOPTR(sizeof(errno))), (IPTR)&errno, TAG_DONE))
+ {
+ enet_deinitialize();
+ return -1;
+ }
+#endif
return 0;
}
void
enet_deinitialize (void)
{
+#if defined(MORPHOS)
+ if (SocketBase)
+ {
+ CloseLibrary(SocketBase);
+ SocketBase = NULL;
+ }
+#endif
}
enet_uint32
@@ -159,8 +198,12 @@ enet_address_set_host (ENetAddress * address, const char * name)
#else
hostEntry = gethostbyname_r (name, & hostData, buffer, sizeof (buffer), & errnum);
#endif
+#else
+#if defined(MORPHOS)
+ hostEntry = gethostbyname ((const UBYTE*)name);
#else
hostEntry = gethostbyname (name);
+#endif
#endif
if (hostEntry != NULL && hostEntry -> h_addrtype == AF_INET)
@@ -233,8 +276,11 @@ enet_address_get_host (const ENetAddress * address, char * name, size_t nameLeng
#endif
#else
in.s_addr = address -> host;
-
+#if defined(MORPHOS)
+ hostEntry = gethostbyaddr ((const UBYTE*) & in, sizeof (struct in_addr), AF_INET);
+#else
hostEntry = gethostbyaddr ((char *) & in, sizeof (struct in_addr), AF_INET);
+#endif
#endif
if (hostEntry != NULL)
@@ -453,7 +499,7 @@ enet_socket_send (ENetSocket socket,
sin.sin_port = ENET_HOST_TO_NET_16 (address -> port);
sin.sin_addr.s_addr = address -> host;
-#if defined(__amigaos4__)
+#if defined(__amigaos4__) || defined(MORPHOS)
msgHdr.msg_name = (char *)& sin;
#else
msgHdr.msg_name = & sin;
@@ -491,7 +537,7 @@ enet_socket_receive (ENetSocket socket,
if (address != NULL)
{
-#if defined(__amigaos4__)
+#if defined(__amigaos4__) || defined(MORPHOS)
msgHdr.msg_name = (char *)& sin;
#else
msgHdr.msg_name = & sin;
diff --git a/backends/networking/enet/source/unix.h b/backends/networking/enet/source/unix.h
index b55be33103d..70d14fce50c 100644
--- a/backends/networking/enet/source/unix.h
+++ b/backends/networking/enet/source/unix.h
@@ -13,6 +13,10 @@
#include <netinet/in.h>
#include <unistd.h>
+#if defined(MORPHOS)
+#undef send
+#endif
+
#ifdef MSG_MAXIOVLEN
#define ENET_BUFFER_MAXIMUM MSG_MAXIOVLEN
#endif
More information about the Scummvm-git-logs
mailing list