From 5955e67c83d7b673fa2a444c7b323628a6d8a381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A1roly=20Balogh?= Date: Sat, 6 Jun 2015 01:45:57 +0000 Subject: [PATCH] MorphOS: enabled sockets unit, and a bunch of network-related packages which depends on it * this brings MorphOS to the same level of network package support as classic Amiga and AROS git-svn-id: trunk@30990 - --- packages/fastcgi/fpmake.pp | 2 +- packages/fcl-net/fpmake.pp | 7 ++++--- packages/fcl-net/src/ssockets.pp | 2 +- packages/fcl-web/fpmake.pp | 14 +++++++------- packages/fcl-web/src/base/fphttpclient.pp | 4 ++-- packages/googleapi/fpmake.pp | 2 +- packages/rtl-extra/fpmake.pp | 3 +-- packages/rtl-extra/src/morphos/sockets.pp | 5 +++-- 8 files changed, 20 insertions(+), 19 deletions(-) diff --git a/packages/fastcgi/fpmake.pp b/packages/fastcgi/fpmake.pp index 27baee5f4b..be5cab4a46 100644 --- a/packages/fastcgi/fpmake.pp +++ b/packages/fastcgi/fpmake.pp @@ -24,7 +24,7 @@ begin P.Email := ''; P.Description := 'FastCGI header translation to Pascal'; P.NeedLibC:= false; - P.OSes := AllUnixOSes+AllWindowsOSes-[qnx]+[amiga,aros]; + P.OSes := AllUnixOSes+AllWindowsOSes+AllAmigaLikeOSes-[qnx]; P.SourcePath.Add('src'); diff --git a/packages/fcl-net/fpmake.pp b/packages/fcl-net/fpmake.pp index be95c26e0b..8193549583 100644 --- a/packages/fcl-net/fpmake.pp +++ b/packages/fcl-net/fpmake.pp @@ -19,7 +19,7 @@ begin {$endif ALLPACKAGES} P.Version:='3.1.1'; P.Dependencies.Add('fcl-base'); - P.Dependencies.Add('openssl',AllOSes - [amiga,aros]); + P.Dependencies.Add('openssl',AllOSes - AllAmigaLikeOSes); P.Dependencies.Add('fcl-xml'); P.Dependencies.Add('fcl-passrc'); P.Dependencies.Add('fcl-async',[linux,freebsd,netbsd,openbsd,dragonfly]); @@ -37,18 +37,19 @@ begin P.IncludePath.Add('src/unix',AllUnixOSes); P.IncludePath.Add('src/win',AllWindowsOSes); P.IncludePath.Add('src/os2',[EMX]); + P.IncludePath.Add('src/amiga',[morphos]); P.IncludePath.Add('src/$(OS)',AllOSes-AllWindowsOSes-AllUnixOSes-[EMX]); // IP and Sockets T:=P.Targets.AddUnit('netdb.pp',AllUnixOSes); - T:=P.Targets.AddUnit('resolve.pp',AllUnixOSes+AllWindowsOSes+[OS2,EMX,amiga,aros]); + T:=P.Targets.AddUnit('resolve.pp',AllUnixOSes+AllWindowsOSes+AllAmigaLikeOSes+[OS2,EMX]); with T.Dependencies do begin AddInclude('resolve.inc'); AddUnit('netdb',AllUnixOSes); end; T.ResourceStrings := True; - T:=P.Targets.AddUnit('ssockets.pp',AllUnixOSes+AllWindowsOSes+[OS2,EMX, amiga,aros]); + T:=P.Targets.AddUnit('ssockets.pp',AllUnixOSes+AllWindowsOSes+AllAmigaLikeOSes+[OS2,EMX]); with T.Dependencies do begin AddUnit('resolve'); diff --git a/packages/fcl-net/src/ssockets.pp b/packages/fcl-net/src/ssockets.pp index b566d7874a..88f8f558e3 100644 --- a/packages/fcl-net/src/ssockets.pp +++ b/packages/fcl-net/src/ssockets.pp @@ -474,7 +474,7 @@ var begin {$if defined(unix)} fpShutdown(FSocket,SHUT_RDWR); -{$elseif defined(mswindows) or defined(aros) or defined(amiga)} +{$elseif defined(mswindows) or defined(hasamiga)} CloseSocket(FSocket); {$else} {$WARNING Method Abort is not tested on this platform!} diff --git a/packages/fcl-web/fpmake.pp b/packages/fcl-web/fpmake.pp index d678e7f578..41ea822e6a 100644 --- a/packages/fcl-web/fpmake.pp +++ b/packages/fcl-web/fpmake.pp @@ -18,7 +18,7 @@ begin P.Directory:=ADirectory; {$endif ALLPACKAGES} P.Version:='3.1.1'; - P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,win32,win64,wince,aix,amiga,aros,dragonfly]; + P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,win32,win64,wince,aix,amiga,aros,morphos,dragonfly]; P.Dependencies.Add('fcl-base'); P.Dependencies.Add('fcl-db'); P.Dependencies.Add('fcl-xml'); @@ -26,8 +26,8 @@ begin P.Dependencies.Add('fcl-net'); P.Dependencies.Add('fcl-process'); P.Dependencies.Add('fastcgi'); - P.Dependencies.Add('httpd22', AllOses - [amiga,aros]); - P.Dependencies.Add('httpd24', AllOses - [amiga,aros]); + P.Dependencies.Add('httpd22', AllOses - [amiga,aros,morphos]); + P.Dependencies.Add('httpd24', AllOses - [amiga,aros,morphos]); // (Temporary) indirect dependencies, not detected by fpcmake: P.Dependencies.Add('univint',[MacOSX,iphonesim]); @@ -123,12 +123,12 @@ begin end; with P.Targets.AddUnit('fpfcgi.pp') do begin - OSes:=AllOses-[wince,darwin,iphonesim,aix,amiga,aros]; + OSes:=AllOses-[wince,darwin,iphonesim,aix,amiga,aros,morphos]; Dependencies.AddUnit('custfcgi'); end; with P.Targets.AddUnit('custfcgi.pp') do begin - OSes:=AllOses-[wince,darwin,iphonesim,aix,amiga,aros]; + OSes:=AllOses-[wince,darwin,iphonesim,aix,amiga,aros,morphos]; Dependencies.AddUnit('httpprotocol'); Dependencies.AddUnit('cgiprotocol'); Dependencies.AddUnit('custcgi'); @@ -138,7 +138,7 @@ begin end; with P.Targets.AddUnit('fpapache.pp') do begin - OSes:=AllOses-[amiga,aros]; + OSes:=AllOses-[amiga,aros,morphos]; Dependencies.AddUnit('httpprotocol'); Dependencies.AddUnit('fphttp'); Dependencies.AddUnit('custweb'); @@ -146,7 +146,7 @@ begin end; with P.Targets.AddUnit('fpapache24.pp') do begin - OSes:=AllOses-[amiga,aros]; + OSes:=AllOses-[amiga,aros,morphos]; Dependencies.AddUnit('fphttp'); Dependencies.AddUnit('custweb'); ResourceStrings:=true; diff --git a/packages/fcl-web/src/base/fphttpclient.pp b/packages/fcl-web/src/base/fphttpclient.pp index 98c6bf20c3..f0e8279867 100644 --- a/packages/fcl-web/src/base/fphttpclient.pp +++ b/packages/fcl-web/src/base/fphttpclient.pp @@ -281,7 +281,7 @@ Function EncodeURLElement(S : String) : String; Function DecodeURLElement(Const S : String) : String; implementation -{$if not defined(aros) and not defined(amiga)} +{$if not defined(hasamiga)} uses sslsockets; {$endif} @@ -433,7 +433,7 @@ begin if Assigned(FonGetSocketHandler) then FOnGetSocketHandler(Self,UseSSL,Result); if (Result=Nil) then - {$if not defined(AROS) and not defined(Amiga)} + {$if not defined(HASAMIGA)} If UseSSL then Result:=TSSLSocketHandler.Create else diff --git a/packages/googleapi/fpmake.pp b/packages/googleapi/fpmake.pp index 89293007de..6bc2aac69f 100644 --- a/packages/googleapi/fpmake.pp +++ b/packages/googleapi/fpmake.pp @@ -30,7 +30,7 @@ begin P.Email := ''; P.Description := 'Google API client libraries.'; P.NeedLibC:= false; - P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,win32,win64,wince,aix,amiga,aros,dragonfly]; + P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,win32,win64,wince,aix,amiga,aros,morphos,dragonfly]; P.Directory:=ADirectory; P.Version:='3.1.1'; P.Dependencies.Add('fcl-base'); diff --git a/packages/rtl-extra/fpmake.pp b/packages/rtl-extra/fpmake.pp index 8b983e38e9..2e8b22dd62 100644 --- a/packages/rtl-extra/fpmake.pp +++ b/packages/rtl-extra/fpmake.pp @@ -27,8 +27,7 @@ Const ObjectsOSes = [amiga,aros,emx,gba,go32v2,morphos,msdos,nds,netware,netwlibc,os2,win32,win64,wince]+UnixLikes; WinsockOSes = [win32,win64,wince,os2,emx,netware,netwlibc]; WinSock2OSes = [win32,win64,wince]; - // sockets of morphos is implemented, but not active - SocketsOSes = UnixLikes+[amiga,aros,netware,netwlibc,os2,wince,win32,win64]; + SocketsOSes = UnixLikes+AllAmigaLikeOSes+[netware,netwlibc,os2,wince,win32,win64]; Socksyscall = [beos,freebsd,haiku,linux,netbsd,openbsd,dragonfly]; Socklibc = unixlikes-socksyscall; gpmOSes = [Linux,Android]; diff --git a/packages/rtl-extra/src/morphos/sockets.pp b/packages/rtl-extra/src/morphos/sockets.pp index d0c99e29c7..9d5751261c 100644 --- a/packages/rtl-extra/src/morphos/sockets.pp +++ b/packages/rtl-extra/src/morphos/sockets.pp @@ -80,7 +80,8 @@ const pseudo_AF_PIP = 25; {* Help Identify PIP packets *} AF_MAX = 26; - + SO_LINGER = $0080; + SOL_SOCKET = $FFFF; const EsockEINTR = 4; // EsysEINTR; @@ -120,12 +121,12 @@ function bsd_recvfrom(s : LongInt location 'd0'; buf : pChar location 'a0'; len function bsd_recv(s : LongInt location 'd0'; buf : pChar location 'a0'; len : LongInt location 'd1'; flags : LongInt location 'd2') : LongInt; syscall legacy SocketBase 078; function bsd_shutdown(s : LongInt location 'd0'; how : LongInt location 'd1') : LongInt; syscall legacy SocketBase 084; function bsd_closesocket(d : LongInt location 'd0') : LongInt; syscall legacy SocketBase 120; +function bsd_Errno: LongInt; syscall SocketBase 162; function bsd_inet_ntoa(in_ : DWord location 'd0') : pChar; syscall legacy SocketBase 174; function bsd_inet_addr(const cp : pChar location 'a0') : DWord; syscall legacy SocketBase 180; function bsd_gethostbyname(const name : pChar location 'a0') : phostent; syscall legacy SocketBase 210; function bsd_gethostbyaddr(const addr : pChar location 'a0'; len : LongInt location 'd0'; type_ : LongInt location 'd1') : phostent; syscall legacy SocketBase 216; - Implementation //Uses {$ifndef FPC_USE_LIBC}SysCall{$else}initc{$endif};