Browse Source

* Dotted filenames for package fcl-net

Michaël Van Canneyt 2 years ago
parent
commit
3718b52ce0

+ 3 - 0
packages/fcl-net/namespaced/System.Net.Cnetdb.pp

@@ -0,0 +1,3 @@
+unit System.Net.Cnetdb;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i cnetdb.pp}

+ 3 - 0
packages/fcl-net/namespaced/System.Net.Fpsock.pp

@@ -0,0 +1,3 @@
+unit System.Net.Fpsock;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i fpsock.pp}

+ 3 - 0
packages/fcl-net/namespaced/System.Net.Httpsvlt.pp

@@ -0,0 +1,3 @@
+unit System.Net.Httpsvlt;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i httpsvlt.pp}

+ 3 - 0
packages/fcl-net/namespaced/System.Net.Netdb.pp

@@ -0,0 +1,3 @@
+unit System.Net.Netdb;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i netdb.pp}

+ 3 - 0
packages/fcl-net/namespaced/System.Net.Resolve.pp

@@ -0,0 +1,3 @@
+unit System.Net.Resolve;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i resolve.pp}

+ 3 - 0
packages/fcl-net/namespaced/System.Net.Sslbase.pp

@@ -0,0 +1,3 @@
+unit System.Net.Sslbase;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i sslbase.pp}

+ 3 - 0
packages/fcl-net/namespaced/System.Net.Sslsockets.pp

@@ -0,0 +1,3 @@
+unit System.Net.Sslsockets;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i sslsockets.pp}

+ 3 - 0
packages/fcl-net/namespaced/System.Net.Ssockets.pp

@@ -0,0 +1,3 @@
+unit System.Net.Ssockets;
+{$DEFINE FPC_DOTTEDUNITS}
+{$i ssockets.pp}

+ 10 - 0
packages/fcl-net/namespaces.lst

@@ -0,0 +1,10 @@
+src/httpsvlt.pp=namespaced/System.Net.Httpsvlt.pp
+{s*:src/}=namespaced/
+{i+:src/}
+src/resolve.pp=namespaced/System.Net.Resolve.pp
+src/sslbase.pp=namespaced/System.Net.Sslbase.pp
+src/sslsockets.pp=namespaced/System.Net.Sslsockets.pp
+src/cnetdb.pp=namespaced/System.Net.Cnetdb.pp
+src/netdb.pp=namespaced/System.Net.Netdb.pp
+src/ssockets.pp=namespaced/System.Net.Ssockets.pp
+src/fpsock.pp=namespaced/System.Net.Fpsock.pp

+ 7 - 0
packages/fcl-net/src/cnetdb.pp

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cNetDB;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {*-
  * Copyright (c) 1980, 1983, 1988, 1993
@@ -64,8 +66,13 @@ unit cNetDB;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.Base, System.Net.Sockets,System.InitC;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   BaseUnix, Sockets,initc;
+{$ENDIF FPC_DOTTEDUNITS}
   
 const
   LIB_C = clib; // use initc's idea of what libc is called. In the future overrides might be necessary here.

+ 16 - 5
packages/fcl-net/src/fpsock.pp

@@ -15,11 +15,17 @@
 {$mode objfpc}
 {$H+}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit fpSock;
+{$ENDIF FPC_DOTTEDUNITS}
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses UnixApi.Errors, System.SysUtils, System.Net.Sockets, System.Classes, System.Async.Fpasync, System.Net.Resolve;
+{$ELSE FPC_DOTTEDUNITS}
 uses Errors, SysUtils, Sockets, Classes, fpAsync, Resolve;
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
 
@@ -188,8 +194,13 @@ type
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.Base,UnixApi.Unix;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   baseunix,Unix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 resourcestring
   SSocketNoEventLoopAssigned = 'No event loop assigned';
@@ -372,7 +383,7 @@ begin
     CanWriteNotifyHandle := nil;
 
     ErrorLen := SizeOf(Error);
-    GetResult := Sockets.fpGetSockOpt(Stream.Handle, SOL_SOCKET, SO_ERROR,
+    GetResult := {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.fpGetSockOpt(Stream.Handle, SOL_SOCKET, SO_ERROR,
       @Error, @ErrorLen);
     if GetResult <> 0 then
       raise ESocketError.CreateFmt(SSocketConnectFailed,
@@ -499,7 +510,7 @@ var
   Socket: Integer;
 begin
 
-  Socket := Sockets.FPSocket(AF_INET, SOCK_STREAM, 0);
+  Socket := {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.FPSocket(AF_INET, SOCK_STREAM, 0);
   if Socket = -1 then
     raise ESocketError.CreateFmt(SSocketCreationError,
       [StrError(SocketError)]);
@@ -515,7 +526,7 @@ begin
   SockAddr.sin_Family := AF_INET;
   SockAddr.sin_Port := ShortHostToNet(Port);
   SockAddr.sin_Addr.s_addr := Cardinal(HostAddr);
-  if Sockets.FpConnect(Stream.Handle, @SockAddr, SizeOf(SockAddr))<>0 Then
+  if {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.FpConnect(Stream.Handle, @SockAddr, SizeOf(SockAddr))<>0 Then
     if (SocketError <> sys_EINPROGRESS) and (SocketError <> 0) then
       raise ESocketError.CreateFmt(SSocketConnectFailed,
         [GetPeerName, StrError(SocketError)]);
@@ -550,12 +561,12 @@ begin
     FActive := False;
     if Value then
     begin
-      Socket := Sockets.fpSocket(AF_INET, SOCK_STREAM, 0);
+      Socket := {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.fpSocket(AF_INET, SOCK_STREAM, 0);
       if Socket = -1 then
         raise ESocketError.CreateFmt(SSocketCreationError,
           [StrError(SocketError)]);
       TrueValue := 1;
-      Sockets.fpSetSockOpt(Socket, SOL_SOCKET, SO_REUSEADDR,
+      {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.fpSetSockOpt(Socket, SOL_SOCKET, SO_REUSEADDR,
         @TrueValue, SizeOf(TrueValue));
       FStream := TSocketStream.Create(Socket);
       Addr.sin_Family := AF_INET;

+ 6 - 0
packages/fcl-net/src/httpsvlt.pp

@@ -12,14 +12,20 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 }
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit HTTPSvlt;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$Mode objfpc}
 {$H+}
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.SysUtils, System.Classes, System.Async.Fpasync, System.Net.Fpsock, HTTPBase, Servlets;
+{$ELSE FPC_DOTTEDUNITS}
 uses SysUtils, Classes, fpAsync, fpSock, HTTPBase, Servlets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 resourcestring
   SErrUnknownMethod = 'Unknown HTTP method "%s" used';

+ 15 - 0
packages/fcl-net/src/netdb.pp

@@ -15,7 +15,9 @@
 {$mode objfpc}
 {$h+}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit netdb;
+{$ENDIF FPC_DOTTEDUNITS}
 {
   WARNING
   This unit hardly does any error checking. For example, stringfromlabel
@@ -30,7 +32,11 @@ unit netdb;
 
 Interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses System.Net.Sockets;
+{$ELSE FPC_DOTTEDUNITS}
 Uses Sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$IFDEF OS2}
 (* ETC directory location determined by environment variable ETC *)
@@ -355,12 +361,21 @@ function DNSRRGetSRV(const RR: TRRNameData; const pl: TPayloadTCP;
 
 Implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses 
+{$ifdef FPC_USE_LIBC}
+   cNetDB,
+{$endif FPC_USE_LIBC}
+   UnixApi.Base,
+   System.SysUtils;
+{$ELSE FPC_DOTTEDUNITS}
 uses 
 {$ifdef FPC_USE_LIBC}
    cNetDB,
 {$endif FPC_USE_LIBC}
    BaseUnix,
    sysutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Function AnsiToString(S : AnsiString) : String; inline;
 

+ 12 - 1
packages/fcl-net/src/resolve.pp

@@ -1,6 +1,8 @@
 {$MODE OBJFPC}
 {$H+}
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit resolve;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$ifndef win32}
 // Here till BSD supports the netbsd unit.
@@ -33,8 +35,13 @@ Unit resolve;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Net.Sockets,System.Classes,Fcl.UriParser;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   Sockets,Classes,UriParser;
+ {$ENDIF FPC_DOTTEDUNITS}
 
 Type
   THostAddr = in_addr;		
@@ -194,7 +201,11 @@ Implementation
   ---------------------------------------------------------------------}
 
 {$ifdef usenetdb}
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.Net.Netdb;
+{$ELSE FPC_DOTTEDUNITS}
 uses netdb;
+{$ENDIF FPC_DOTTEDUNITS}
 {$else}
 {$i resolve.inc}
 {$endif}
@@ -774,7 +785,7 @@ Var
   U : TURI;
 
 begin
-  U:=UriParser.ParseURI(AUri);
+  U:={$IFDEF FPC_DOTTEDUNITS}Fcl.{$ENDIF}UriParser.ParseURI(AUri);
   FProtocol := u.Protocol;
   FUsername := u.Username;
   FPassword := u.Password;

+ 7 - 0
packages/fcl-net/src/sslbase.pp

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit sslbase;
+{$ENDIF FPC_DOTTEDUNITS}
 {
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2022 by Michael van Canney and other members of the
@@ -19,8 +21,13 @@ unit sslbase;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Classes, System.SysUtils;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   Classes, SysUtils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Type
   TSSLType = (stAny,stSSLv2,stSSLv3,stTLSv1,stTLSv1_1,stTLSv1_2);

+ 7 - 0
packages/fcl-net/src/sslsockets.pp

@@ -12,14 +12,21 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit sslsockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$mode objfpc}{$H+}
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.Classes, System.SysUtils, System.Net.Sockets, System.Net.Ssockets, System.Net.Sslbase;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   Classes, SysUtils, sockets, ssockets, sslbase;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Const
   SUseCertData = 'use CertificateData instead';

+ 38 - 19
packages/fcl-net/src/ssockets.pp

@@ -13,12 +13,19 @@
 {$MODE objfpc}{$H+}
 {$R-}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit ssockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils, System.Classes, System.CTypes, System.Net.Sockets;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   SysUtils, Classes, ctypes, sockets;
+{$ENDIF FPC_DOTTEDUNITS}
 
 type
 
@@ -107,8 +114,8 @@ type
     Procedure GetSockOptions;
     procedure SetConnectTimeout(AValue: Integer);
     Procedure SetSocketOptions(Value : TSocketOptions);
-    function GetLocalAddress: sockets.TSockAddr;
-    function GetRemoteAddress: sockets.TSockAddr;
+    function GetLocalAddress: {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.TSockAddr;
+    function GetRemoteAddress: {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.TSockAddr;
     procedure SetIOTimeout(AValue: Integer);
   Protected
     Procedure DoOnClose; virtual;
@@ -124,8 +131,8 @@ type
     Function Write (Const Buffer; Count : Longint) :Longint; Override;
     Property SocketOptions : TSocketOptions Read FSocketOptions
                                             Write SetSocketOptions;
-    property LocalAddress: sockets.TSockAddr read GetLocalAddress;
-    property RemoteAddress: sockets.TSockAddr read GetRemoteAddress;
+    property LocalAddress: {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}sockets.TSockAddr read GetLocalAddress;
+    property RemoteAddress: {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}sockets.TSockAddr read GetRemoteAddress;
     Property LastError : Integer Read GetLastError;
     Property ReadFlags : Integer Read FReadFlags Write FReadFlags;
     Property WriteFlags : Integer Read FWriteFlags Write FWriteFlags;
@@ -329,6 +336,17 @@ type
 
 Implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+// This must be here, to prevent it from overriding the sockets definitions... :/
+{$ifdef unix}
+  UnixApi.Base,UnixApi.Unix,
+{$endif}
+{$ifdef Windows}
+  WinApi.Winsock2, WinApi.Windows,
+{$endif}
+  System.Net.Resolve;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 // This must be here, to prevent it from overriding the sockets definitions... :/
 {$ifdef unix}
@@ -338,6 +356,7 @@ uses
   winsock2, windows,
 {$endif}
   resolve;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Const
   SocketBlockingMode = 0;
@@ -481,7 +500,7 @@ begin
   Res:=fpSelect(Socket.Handle + 1, PFDSR, PFDSW, PFDSE, PTV);
 {$endif}
 {$ifdef windows}
-  Res:=winsock2.Select(Socket.Handle + 1, PFDSR, PFDSW, PFDSE, @TimeV);
+  Res:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Select(Socket.Handle + 1, PFDSR, PFDSW, PFDSE, @TimeV);
 {$endif}
 {$if defined(unix) or defined(windows)}
   if Res>0 then
@@ -681,7 +700,7 @@ begin
   Result := fpSelect(MaxHandle+1, @FDR, @FDW, @FDE, @TimeV) > 0;
 {$endif}
 {$ifdef windows}
-  Result := winsock2.Select(MaxHandle+1, @FDR, @FDW, @FDE, @TimeV) > 0;
+  Result := {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Select(MaxHandle+1, @FDR, @FDW, @FDE, @TimeV) > 0;
 {$endif}
   aRead:=FillArr(FDR,aRead);
   aWrite:=FillArr(FDR,aRead);
@@ -774,20 +793,20 @@ begin
   Result:=FHandler.Send(Buffer,Count);
 end;
 
-function TSocketStream.GetLocalAddress: sockets.TSockAddr;
+function TSocketStream.GetLocalAddress: {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}sockets.TSockAddr;
 var
   len: LongInt;
 begin
-  len := SizeOf(sockets.TSockAddr);
+  len := SizeOf({$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}sockets.TSockAddr);
   if fpGetSockName(Handle, @Result, @len) <> 0 then
     FillChar(Result, SizeOf(Result), 0);
 end;
 
-function TSocketStream.GetRemoteAddress: sockets.TSockAddr;
+function TSocketStream.GetRemoteAddress: {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}sockets.TSockAddr;
 var
   len: LongInt;
 begin
-  len := SizeOf(sockets.TSockAddr);
+  len := SizeOf({$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}sockets.TSockAddr);
   if fpGetPeerName(Handle, @Result, @len) <> 0 then
     FillChar(Result, SizeOf(Result), 0);
 end;
@@ -925,7 +944,7 @@ begin
     FDS := Default(TFDSet);
     FD_Zero(FDS);
     FD_Set(FSocket, FDS);
-    Result := winsock2.Select(FSocket + 1, @FDS, @FDS, @FDS, @TimeV) > 0;
+    Result := {$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.Select(FSocket + 1, @FDS, @FDS, @FDS, @TimeV) > 0;
 {$endif}
 {$endif}
     If Result then
@@ -939,7 +958,7 @@ procedure TSocketServer.Listen;
 begin
   If Not FBound then
     Bind;
-  If  Sockets.FpListen(FSocket,FQueueSize)<>0 then
+  If  {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.FpListen(FSocket,FQueueSize)<>0 then
     Raise ESocketError.Create(seListenFailed,[FSocket,SocketError]);
 end;
 
@@ -1238,7 +1257,7 @@ Var S : longint;
 begin
   FHost:=aHost;
   FPort:=APort;
-  S:=Sockets.FpSocket(AF_INET,SOCK_STREAM,0);
+  S:={$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.FpSocket(AF_INET,SOCK_STREAM,0);
   If S=-1 Then
     Raise ESocketError.Create(seCreationFailed,[Format('%d',[APort])]);
   Inherited Create(S,AHandler);
@@ -1250,7 +1269,7 @@ begin
   Faddr.sin_family := AF_INET;
   Faddr.sin_port := ShortHostToNet(FPort);
   Faddr.sin_addr.s_addr := LongWord(StrToNetAddr(FHost));
-  if  Sockets.fpBind(FSocket, @FAddr, Sizeof(FAddr))<>0 then
+  if {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.fpBind(FSocket, @FAddr, Sizeof(FAddr))<>0 then
     raise ESocketError.Create(seBindFailed, [IntToStr(FPort)]);
   FBound:=True;
 end;
@@ -1300,7 +1319,7 @@ begin
   While (R=ESysEINTR) do
 {$ENDIF UNIX}
    begin
-   Result:=Sockets.fpAccept(Socket,@Faddr,@L);
+   Result:={$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.fpAccept(Socket,@Faddr,@L);
    R:=SocketError;
    end;
 {$ifdef Unix}
@@ -1328,7 +1347,7 @@ Var S : Longint;
 
 begin
   FFileName:=AFileName;
-  S:=Sockets.fpSocket(AF_UNIX,SOCK_STREAM,0);
+  S:={$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.fpSocket(AF_UNIX,SOCK_STREAM,0);
   If S=-1 then
     Raise ESocketError.Create(seCreationFailed,[AFileName])
   else
@@ -1348,7 +1367,7 @@ var
   AddrLen  : longint;
 begin
   Str2UnixSockAddr(FFilename,FUnixAddr,AddrLen);
-  If  Sockets.FpBind(Socket,@FUnixAddr,AddrLen)<>0 then
+  If  {$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.FpBind(Socket,@FUnixAddr,AddrLen)<>0 then
     Raise ESocketError.Create(seBindFailed,[FFileName]);
   FBound:=True;
 end;
@@ -1359,7 +1378,7 @@ Var L : longint;
 
 begin
   L:=Length(FFileName);
-  Result:=Sockets.fpAccept(Socket,@FUnixAddr,@L);
+  Result:={$IFDEF FPC_DOTTEDUNITS}System.Net.{$ENDIF}Sockets.fpAccept(Socket,@FUnixAddr,@L);
   If Result<0 then
     If SocketError=ESysEWOULDBLOCK then
       Raise ESocketError.Create(seAcceptWouldBlock,[socket])
@@ -1481,7 +1500,7 @@ begin
     Res:=fpSelect(ASocket + 1, nil, locFDS, nil, locTimeVal); // 0 -> TimeOut
   {$ENDIF}
   {$ifdef windows}
-    Res:=winsock2.select(ASocket + 1, nil, locFDS, nil, locTimeVal); // 0 -> TimeOut
+    Res:={$IFDEF FPC_DOTTEDUNITS}WinApi.{$ENDIF}Winsock2.select(ASocket + 1, nil, locFDS, nil, locTimeVal); // 0 -> TimeOut
   {$ENDIF}
   if (Res=0) then
     Result:=ctrTimeout

+ 5 - 0
packages/fcl-net/src/win/resolve.inc

@@ -13,7 +13,12 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
  **********************************************************************}
+
+{$IFDEF FPC_DOTTEDUNITS}
+uses WinApi.Winsock;
+{$ELSE FPC_DOTTEDUNITS}
 uses winsock;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Type
   PHostEntry = PHostEnt;