diff --git a/fcl/lnet/examples/lftp/lftpclient.pp b/fcl/lnet/examples/lftp/lftpclient.pp index 836caaae48..7e2133ee82 100644 --- a/fcl/lnet/examples/lftp/lftpclient.pp +++ b/fcl/lnet/examples/lftp/lftpclient.pp @@ -233,7 +233,7 @@ end; function TClient.UserString: string; begin - {$ifdef win32} + {$ifdef WINDOWS} Result:='USERNAME'; {$else} Result:='USER'; diff --git a/fcl/lnet/examples/lhttp/fphttpd.pp b/fcl/lnet/examples/lhttp/fphttpd.pp index d9f08ac6c6..b18e754985 100644 --- a/fcl/lnet/examples/lhttp/fphttpd.pp +++ b/fcl/lnet/examples/lhttp/fphttpd.pp @@ -27,7 +27,7 @@ program fphttpd; uses SysUtils, Classes, lNet, -{$ifndef WINDOWS} +{$ifdef UNIX} BaseUnix, Errors, {$endif} lhttp, lwebserver, lHTTPSettings, lSpawnFCGI; @@ -98,7 +98,7 @@ end; procedure HandleSignals; begin - {$ifndef WINDOWS} + {$ifdef UNIX} FpSignal(SIGTERM, @HandleTermSignal); FpSignal(SIGINT, @HandleTermSignal); FpSignal(SIGHUP, signalhandler(SIG_IGN)); @@ -107,7 +107,7 @@ begin end; function Daemonize: Integer; - {$ifndef WINDOWS} + {$ifdef UNIX} var PID: TPid; begin diff --git a/fcl/lnet/lcommon.pp b/fcl/lnet/lcommon.pp index 6f8776bf31..cf29798657 100644 --- a/fcl/lnet/lcommon.pp +++ b/fcl/lnet/lcommon.pp @@ -36,7 +36,27 @@ const SOL_SOCKET = $ffff; LMSG = 0; SOCKET_ERROR = WinSock2.SOCKET_ERROR; - {$ELSE} + {$ENDIF} + + {$IFDEF OS2} + SOL_SOCKET = WinSock.SOL_SOCKET; + LMSG = 0; + SOCKET_ERROR = WinSock.SOCKET_ERROR; + {$ENDIF} + + {$IFDEF NETWARE} + SOL_SOCKET = WinSock.SOL_SOCKET; + LMSG = 0; + SOCKET_ERROR = WinSock.SOCKET_ERROR; + {$ENDIF} + + {$IFDEF NETWLIBC} + SOL_SOCKET = WinSock.SOL_SOCKET; + LMSG = 0; + SOCKET_ERROR = WinSock.SOCKET_ERROR; + {$ENDIF} + + {$IFDEF UNIX} INVALID_SOCKET = -1; SOCKET_ERROR = -1; {$IFDEF LINUX} // TODO: fix this crap, some don't even have MSD_NOSIGNAL @@ -49,17 +69,13 @@ const LDEFAULT_BACKLOG = 5; BUFFER_SIZE = 65536; - {$IFDEF WINDOWS} + {$IFNDEF UNIX} type TInetSockAddr = TSockAddrin; {$ENDIF} { Base functions } - function StrToHostAddr(const IP: string): Cardinal; inline; - function HostAddrToStr(const Entry: Cardinal): string; inline; - function StrToNetAddr(const IP: string): Cardinal; inline; - function NetAddrToStr(const Entry: Cardinal): string; inline; - {$IFDEF WINDOWS} + {$IFNDEF UNIX} function fpSelect(const nfds: Integer; const readfds, writefds, exceptfds: PFDSet; const timeout: PTimeVal): Integer; inline; function fpFD_ISSET(const Socket: Integer; var FDSet: TFDSet): Integer; inline; @@ -77,10 +93,16 @@ type function IsBlockError(const anError: Integer): Boolean; inline; + function StrToHostAddr(const IP: string): Cardinal; inline; + function HostAddrToStr(const Entry: Cardinal): string; inline; + function StrToNetAddr(const IP: string): Cardinal; inline; + function NetAddrToStr(const Entry: Cardinal): string; inline; + implementation -{$IFDEF WINDOWS} +{$IFNDEF UNIX} +{$IFDEF WINDOWS} uses Windows; @@ -109,6 +131,15 @@ begin Result:=Tmp; end; +{$ELSE} + +function LStrError(const Ernum: Longint; const UseUTF8: Boolean = False): string; +begin + Result:=IntToStr(Ernum); // TODO: fix for non-windows winsock users +end; + +{$ENDIF} + function LSocketError: Longint; begin Result:=WSAGetLastError; @@ -187,7 +218,7 @@ begin end; {$ELSE} - +// unix uses Errors; @@ -253,14 +284,9 @@ end; {$ENDIF} -function NetAddrToStr(const Entry: Cardinal): string; inline; +function StrToHostAddr(const IP: string): Cardinal; inline; begin - Result:=Sockets.NetAddrToStr(in_addr(Entry)); -end; - -function StrToNetAddr(const IP: string): Cardinal; inline; -begin - Result:=Cardinal(Sockets.StrToNetAddr(IP)); + Result:=Cardinal(Sockets.StrToHostAddr(IP)); end; function HostAddrToStr(const Entry: Cardinal): string; inline; @@ -268,9 +294,14 @@ begin Result:=Sockets.HostAddrToStr(in_addr(Entry)); end; -function StrToHostAddr(const IP: string): Cardinal; inline; +function StrToNetAddr(const IP: string): Cardinal; inline; begin - Result:=Cardinal(Sockets.StrToHostAddr(IP)); + Result:=Cardinal(Sockets.StrToNetAddr(IP)); +end; + +function NetAddrToStr(const Entry: Cardinal): string; inline; +begin + Result:=Sockets.NetAddrToStr(in_addr(Entry)); end; end. diff --git a/fcl/lnet/lhttputil.pp b/fcl/lnet/lhttputil.pp index 17a5f0e452..e3123112aa 100644 --- a/fcl/lnet/lhttputil.pp +++ b/fcl/lnet/lhttputil.pp @@ -74,11 +74,22 @@ end; {$else} +{$ifdef UNIX} + function TZSeconds: integer; inline; begin Result := unixutil.TZSeconds; end; +{$else} + +function TZSeconds: integer; inline; +begin + Result := 0; // TODO: implement for non windows, non unix +end; + +{$endif} + {$endif} function GMTToLocalTime(ADateTime: TDateTime): TDateTime; diff --git a/fcl/lnet/lspawnfcgi.pp b/fcl/lnet/lspawnfcgi.pp index 5465678d22..280ad94c7f 100644 --- a/fcl/lnet/lspawnfcgi.pp +++ b/fcl/lnet/lspawnfcgi.pp @@ -11,10 +11,10 @@ uses implementation -{$ifdef WINDOWS} - {$i lspawnfcgiwin.inc} -{$else} +{$ifdef UNIX} {$i lspawnfcgiunix.inc} +{$else} + {$i lspawnfcgiwin.inc} {$endif} end. diff --git a/fcl/lnet/sys/osunits.inc b/fcl/lnet/sys/osunits.inc index c325226443..2862ca0c72 100644 --- a/fcl/lnet/sys/osunits.inc +++ b/fcl/lnet/sys/osunits.inc @@ -1,7 +1,22 @@ {$ifdef WINDOWS} Winsock2, -{$else} +{$endif} + +{$ifdef UNIX} BaseUnix, NetDB, {$endif} + +{$ifdef NETWARE} + WinSock, +{$endif} + +{$ifdef OS2} + WinSock, +{$endif} + +{$ifdef NETWLIBC} + WinSock, +{$endif} + SysUtils, Sockets;