[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