Browse Source

* OS/2 support previously added to Synapse merged in

git-svn-id: trunk@27729 -
Tomas Hajny 11 năm trước cách đây
mục cha
commit
b101438eb7
1 tập tin đã thay đổi với 34 bổ sung8 xóa
  1. 34 8
      packages/openssl/src/openssl.pas

+ 34 - 8
packages/openssl/src/openssl.pas

@@ -79,6 +79,9 @@ requested OpenSSL function just return errorcode.
 interface
 interface
 
 
 uses
 uses
+{$IFDEF OS2}
+  Sockets,
+{$ENDIF OS2}
   DynLibs, cTypes, SysUtils;
   DynLibs, cTypes, SysUtils;
 
 
 var
 var
@@ -87,6 +90,15 @@ var
   DLLSSLName2: string = 'libssl32.dll';
   DLLSSLName2: string = 'libssl32.dll';
   DLLUtilName: string = 'libeay32.dll';
   DLLUtilName: string = 'libeay32.dll';
   {$ELSE}
   {$ELSE}
+   {$IFDEF OS2}
+    {$IFDEF OS2GCC}
+  DLLSSLName: string = 'kssl.dll';
+  DLLUtilName: string = 'kcrypto.dll';
+    {$ELSE OS2GCC}
+  DLLSSLName: string = 'ssl.dll';
+  DLLUtilName: string = 'crypto.dll';
+    {$ENDIF OS2GCC}
+   {$ELSE OS2}
   DLLSSLName: string = 'libssl';
   DLLSSLName: string = 'libssl';
   DLLUtilName: string = 'libcrypto';
   DLLUtilName: string = 'libcrypto';
   
   
@@ -97,7 +109,8 @@ var
                                         '.1.0.2', '.1.0.1','.1.0.0','.0.9.8',
                                         '.1.0.2', '.1.0.1','.1.0.0','.0.9.8',
                                         '.0.9.7', '.0.9.6', '.0.9.5', '.0.9.4',
                                         '.0.9.7', '.0.9.6', '.0.9.5', '.0.9.4',
                                         '.0.9.3', '.0.9.2', '.0.9.1');
                                         '.0.9.3', '.0.9.2', '.0.9.1');
-  {$ENDIF}
+   {$ENDIF OS2}
+  {$ENDIF WINDOWS}
 
 
 const
 const
   // EVP.h Constants
   // EVP.h Constants
@@ -115,12 +128,16 @@ type
   PSSL_CTX = SslPtr;
   PSSL_CTX = SslPtr;
   PSSL = SslPtr;
   PSSL = SslPtr;
   PSSL_METHOD = SslPtr;
   PSSL_METHOD = SslPtr;
+{  PX509 = SslPtr;}
+{  PX509_NAME = SslPtr;}
   PEVP_MD	= SslPtr;
   PEVP_MD	= SslPtr;
   PBIO_METHOD = SslPtr;
   PBIO_METHOD = SslPtr;
   PBIO = SslPtr;
   PBIO = SslPtr;
+{  EVP_PKEY = SslPtr;}
+  PRSA = SslPtr;
+  PASN1_UTCTIME = SslPtr;
   PASN1_INTEGER = SSlPtr;
   PASN1_INTEGER = SSlPtr;
 
 
-  PRSA = pointer;
   PDH = pointer;
   PDH = pointer;
   PSTACK_OFX509 = pointer;
   PSTACK_OFX509 = pointer;
 
 
@@ -229,7 +246,6 @@ type
   PPEVP_PKEY = ^PEVP_PKEY;
   PPEVP_PKEY = ^PEVP_PKEY;
   
   
   PPRSA = ^PRSA;
   PPRSA = ^PRSA;
-  PASN1_UTCTIME = SslPtr;
   PASN1_cInt = SslPtr;
   PASN1_cInt = SslPtr;
   PPasswdCb = SslPtr;
   PPasswdCb = SslPtr;
   PFunction = procedure;
   PFunction = procedure;
@@ -2875,6 +2891,7 @@ begin
 end;
 end;
 
 
 {$IFNDEF WINDOWS}
 {$IFNDEF WINDOWS}
+ {$IFNDEF OS2}
 { Try to load all library versions until you find or run out }
 { Try to load all library versions until you find or run out }
 function LoadLibHack(const Value: String): HModule;
 function LoadLibHack(const Value: String): HModule;
 var
 var
@@ -2893,15 +2910,20 @@ begin
       Break;
       Break;
   end;
   end;
 end;
 end;
-{$ENDIF}
+ {$ENDIF OS2}
+{$ENDIF WINDOWS}
 
 
 function LoadLib(const Value: String): HModule;
 function LoadLib(const Value: String): HModule;
 begin
 begin
   {$IFDEF WINDOWS}
   {$IFDEF WINDOWS}
   Result := LoadLibrary(Value);
   Result := LoadLibrary(Value);
-  {$ELSE}
+  {$ELSE WINDOWS}
+   {$IFDEF OS2}
+  Result := LoadLibrary(Value);
+   {$ELSE OS2}
   Result := LoadLibHack(Value);
   Result := LoadLibHack(Value);
-  {$ENDIF}
+   {$ENDIF OS2}
+  {$ENDIF WINDOWS}
 end;
 end;
 
 
 function GetProcAddr(module: HModule; const ProcName: string): SslPtr;
 function GetProcAddr(module: HModule; const ProcName: string): SslPtr;
@@ -3440,8 +3462,12 @@ begin
       _RandScreen;
       _RandScreen;
     if assigned(_CRYPTOnumlocks) and assigned(_CRYPTOsetlockingcallback) then
     if assigned(_CRYPTOnumlocks) and assigned(_CRYPTOsetlockingcallback) then
       InitLocks;
       InitLocks;
-     Result := True;
-     SSLloaded := True;
+    SSLloaded := True;
+{$IFDEF OS2}
+    Result := InitEMXHandles;
+{$ELSE OS2}
+    Result := True;
+{$ENDIF OS2}
   finally
   finally
     LeaveCriticalSection(SSLCS);
     LeaveCriticalSection(SSLCS);
   end;
   end;