A build of tcl tls extension with openssl 1.0.0 lib does not work.
ActiveTcl successfully uses tls with openssl 1.0.1, so you'll have to be a bit more specific about what's not working in your environment.
link -nologo -machine:IX86 -ltcg -release -opt:ref -opt:icf,3 -opt:nowin98 -dll -base:0x10780000 -out:.\Release_VC9\tls16.dll "D:\tcl8.5.10\win\Release_VC9\tclstub85.lib" -libpath:"D:/openssl-1.0.0g\out32" ssleay32.lib libeay32.lib ws2_32.lib user32.lib gdi32.lib advapi32.lib @C:\DOCUME~1\twu\LOCALS~1\Temp\nm114B.tmp LINK : warning LNK4224: /OPT:NOWIN98 is no longer supported; ignored Creating library .\Release_VC9\tls16.lib and object .\Release_VC9\tls16.exp Generating code Finished generating code if exist .\Release_VC9\tls16.dll.manifest mt -nologo -manifest .\Release_VC9\tls16.dll.manifest -outputresource:.\Release_VC9\tls16.dll;2
And I tried to test the built one with gmail,
Trying smtp.gmail.com... <-- 220 mx.google.com ESMTP z8sm30342350pbt.23 - gsmtp --> EHLO hvstwu02 (wait upto 300 seconds) <-- 250-mx.google.com at your service, [220.248.33.53] <-- 250-SIZE 35882577 <-- 250-8BITMIME <-- 250-STARTTLS <-- 250 ENHANCEDSTATUSCODES --> STARTTLS (wait upto 300 seconds) <-- 220 2.0.0 Ready to start TLS
The tcl crashed after "start TLS", the call stack showed as followed,
msvcr90d.dll!_fsopen(const char * file=0x00000000, const char * mode=0x0012e5d4, int shflag=64) Line 54 + 0x2f bytes C msvcr90d.dll!fopen(const char * file=0x00000000, const char * mode=0x0012e5d4) Line 124 + 0xf bytes C tls16.dll!file_ctrl(bio_st * b=0x01006272, int cmd=108, long num=3, void * ptr=0x00000000) Line 395 + 0xf bytes C tls16.dll!BIO_ctrl(bio_st * b=0x015fcb98, int cmd=108, long larg=3, void * parg=0x00000000) Line 370 + 0xf bytes C tls16.dll!SSL_load_client_CA_file(const char * file=0x00000000) Line 670 + 0xf bytes C tls16.dll!CTX_Init(State * statePtr=0x013eed10, int proto=3, char * key=0x00000000, char * cert=0x10841af4, char * CAdir=0x00000000, char * CAfile=0x00000000, char * ciphers=0x00000000) Line 1087 + 0x4d bytes C tls16.dll!ImportObjCmd(void * clientData=0x00000000, Tcl_Interp * interp=0x009ca940, int objc=2, Tcl_Obj * const * objv=0x01068a50) Line 801 + 0x21 bytes C
build tcl-tls with tcl8.5.10/openssl1.0.0
Visual studio 2008/Tcl8.5.10/Openssl1.0.0
ActiveTcl successfully uses tls with openssl 1.0.1, so you'll have to be a bit more specific about what's not working in your environment.
link -nologo -machine:IX86 -ltcg -release -opt:ref -opt:icf,3 -opt:nowin98 -dll -base:0x10780000 -out:.\Release_VC9\tls16.dll "D:\tcl8.5.10\win\Release_VC9\tclstub85.lib" -libpath:"D:/openssl-1.0.0g\out32" ssleay32.lib libeay32.lib ws2_32.lib user32.lib gdi32.lib advapi32.lib @C:\DOCUME~1\twu\LOCALS~1\Temp\nm114B.tmp
LINK : warning LNK4224: /OPT:NOWIN98 is no longer supported; ignored
Creating library .\Release_VC9\tls16.lib and object .\Release_VC9\tls16.exp
Generating code
Finished generating code
if exist .\Release_VC9\tls16.dll.manifest mt -nologo -manifest .\Release_VC9\tls16.dll.manifest -outputresource:.\Release_VC9\tls16.dll;2
And I tried to test the built one with gmail,
Trying smtp.gmail.com...
<-- 220 mx.google.com ESMTP z8sm30342350pbt.23 - gsmtp
--> EHLO hvstwu02 (wait upto 300 seconds)
<-- 250-mx.google.com at your service, [220.248.33.53]
<-- 250-SIZE 35882577
<-- 250-8BITMIME
<-- 250-STARTTLS
<-- 250 ENHANCEDSTATUSCODES
--> STARTTLS (wait upto 300 seconds)
<-- 220 2.0.0 Ready to start TLS
The tcl crashed after "start TLS", the call stack showed as followed,
build tcl-tls with tcl8.5.10/openssl1.0.0
Visual studio 2008/Tcl8.5.10/Openssl1.0.0