Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 82,855
» Latest member: jilipgitcom
» Forum threads: 2,408
» Forum posts: 11,315

Full Statistics

Online Users
There are currently 575 online users.
» 4 Member(s) | 567 Guest(s)
Applebot, Bing, Google, Yandex, EnfieldRoyalClinic, jilipgitcom, qq88ggnnet

Latest Threads
IW 16.2.0 Missing librari...
Forum: IntraWeb General Discussion
Last Post: Gregory_Twedt
06-24-2026, 04:40 AM
» Replies: 5
» Views: 693
VCL conversion
Forum: Delphi General Discussion
Last Post: tobenschain
06-20-2026, 05:00 AM
» Replies: 0
» Views: 97
TIWjQDBGrid changing UI
Forum: IntraWeb General Discussion
Last Post: BoostedCruiser
06-08-2026, 02:02 AM
» Replies: 36
» Views: 70,538
TIWjQDBGrid erratic behav...
Forum: IntraWeb General Discussion
Last Post: Fabrizio Conti
06-04-2026, 09:14 AM
» Replies: 3
» Views: 516
Access Violation When Val...
Forum: IntraWeb General Discussion
Last Post: Alexandre Machado
06-03-2026, 08:47 AM
» Replies: 2
» Views: 538
Bootstrap5
Forum: IntraWeb General Discussion
Last Post: geraldtatum
06-02-2026, 06:24 AM
» Replies: 1
» Views: 438
weakpackageunit contains ...
Forum: IntraWeb General Discussion
Last Post: rlebeau
05-26-2026, 04:56 PM
» Replies: 4
» Views: 587
Custom 404 handler
Forum: IntraWeb General Discussion
Last Post: CfawesDwale
05-21-2026, 08:02 AM
» Replies: 0
» Views: 275
PopUp Menu
Forum: IntraWeb General Discussion
Last Post: alex.trejo@tttnet.com.mx
05-13-2026, 04:35 AM
» Replies: 4
» Views: 8,239
Image question on tiwjqdb...
Forum: IntraWeb General Discussion
Last Post: alex.trejo@tttnet.com.mx
05-13-2026, 03:32 AM
» Replies: 3
» Views: 4,143

 
  TIdSmtpServer not freeing threads
Posted by: bluewwol - 10-24-2018, 05:04 PM - Forum: Indy - Replies (10)

Hi,

I have an extremely simple SmtpServer set up to simply receive emails and write them to disk.  My problem is that over several hours the number of active threads just keeps growing, leading me to believe they are not being freed correctly.  I further have to conclude it is quite likely as a result of something I am doing or not doing that is causing this, however for the life of me I cant seem to identify the problem.

I have attached my sources, they do contain an external reference to a text file logging routine that is thread safe (file protected by critical section) that has been used without issue for many years.

In my current setup I am binding to 20 IP addresses and they all seem to receive and handle the incomming email as expected.  The load on the system is between 1 and 5 messages per minute.  after 24 hours there are well over 1,000 threads active, this would not be all the threads created (fewer than messages received) in that period.

By my speculation my error should be in my configuration of the component
    with WwolSmtpServ do
    begin
      ReuseSocket := rsTrue;
      AllowPipelining := True;
      ServerName := 'WWOL SMTP server';
      DefaultPort := 25;
      ListenQueue := 50;
      MaxConnections := 0;
      MaxMsgSize := 0;
      TerminateWaitTime := 500;
      UseNagle := True;
      UseTLS := utNoTLSSupport;
    end;

OR in my component exception handlers
procedure TdSmtpServ.WwolSmtpServException(AContext: TIdContext; AException: Exception);
begin
  try
    if ((AException is EIdConnClosedGracefully) or (AException is EIdNotConnected)) then
    begin
      Exit;
    end
    else
    begin

      if AContext.Connection.Connected then
      begin
        Log(Now, 0, 1, AContext.Binding.IP, AContext.Binding.PeerIP, AException.ClassName, AException.message + ' - ' + ' SmtpServException still connected');
        AContext.Connection.Disconnect;
      end
      else
        Log(Now, 0, 1, AContext.Binding.IP, AContext.Binding.PeerIP, AException.ClassName, AException.message + ' - ' + ' SmtpServException disconnected');
      // AContext.Connection.Disconnect(False);
    end;
  except
    on E: Exception do
    begin
      dmMain.TextLog('WwolSmtpServException : ' + E.Message);
      dmMain.TextLog('WwolSmtpServException : ' + AContext.Binding.IP + ' : ' + AContext.Binding.PeerIP + ' : ' + AException.ClassName + ' : ' + AException.message);
    end;
  end;
end;

procedure TdSmtpServ.WwolSmtpServListenException(AThread: TIdListenerThread; AException: Exception);
begin
  // Log(logModerate, 0, 'TdSmtpServ', 'WwolSmtpServListenException', '', '', AException.Message);
  Log(Now, 0, -3, AThread.Binding.IP, AThread.Binding.PeerIP, AException.ClassName, AException.message + ' - WwolSmtpServListenException');
  // AThread.Connection.Disconnect;
end;

OR in the component disconnect event
procedure TdSmtpServ.WwolSmtpServConnect(AContext: TIdContext);
begin
  Log(Now, 0, -4, AContext.Binding.IP, AContext.Binding.PeerIP, 'WwolSmtpServConnect',
    AContext.Binding.DisplayName + ' - ' + ' WwolSmtpServConnect');

end;

I am hoping I have missed something stupid and some fresh eyes might see the obvious,

Thanks for any assistance
-Allen



Attached Files
.txt   SmtpServ.txt (Size: 16.08 KB / Downloads: 1)
Print this item

  OpenSSL binaries for Linux needed or not?
Posted by: BosseB - 10-24-2018, 06:45 AM - Forum: Indy - Replies (5)

I have a Delphi console project I am porting to Linux using FreePascal 3.0.4  and Lazarus 1.8.4.
It uses Indy10 email and FTP components with OpenSSL.

The port is towards Ubuntu Linux on x86_64. So it is now a 64 bit program.

I installed the IndyLaz package for Indy10 via OnlinePackageManager in Lazarus and it seems like it accepts all of my Indy calls during compile.
But this Delphi project relied on two dlls (libeay32.dll and ssleay32.dll) for SSL to operate on Windows.
Do I need to put some corresponding Linux binaries into my project directory and if so where can I get them?
Or is the fact that I installed OpenSSL into Ubuntu enough for Indy10 to be able to use SSL?

I have not yet reached the point where I can test run the application since it needs specific email data to work from.

EDIT after being able to test run application


It turns out that the SSL connection apparently needs something extra in Linux...
I am getting the following exception when connecting to the mail server to retrieve email using POP3:

[Image: SSL_FileNotFound.png]

Followed by this when I click No twice:

[Image: SSL_Error_Linux.png]


This happens in this code section:


Code:
   try
      IdGetMail.Connect; // This is an IdPop3 object. Exception thrown here
      MailCnt := IdGetMail.CheckMessages;
      if MailCnt = 0 then    {Nothing to process}

Print this item

Exclamation 14.2.1 TIWTabControl A.V.
Posted by: duesse - 10-24-2018, 06:28 AM - Forum: IntraWeb General Discussion - Replies (3)

Hello

Some week ago I switched  14.2.1 from 14.0.58. Lately I realized that all forms using TIWTabControl doesn't work anymore throwing an Access Violation error clicking on tabs bar (Please see below the trace-back)
I checked my project and even in the IDE (RAD studio XE) the issue occurs.
Testing is quite simple. Just place on a IWForm a TIWTabControl, add few pages and then click on the tabs bar and observe the pop up dialog reporting the AV error. 

Has anybody else experienced/reported this issue?
Has been fixed in earlier releases? (unfortunately I cannot further upgrade since 14..2.1 is the latest version allowed by my license)
Does a workaround is available?

Thanks in advance
Andrea

Application Error
An unhandled application error has occured within EnteBilaterale


Error message: Access violation at address 48488BD2. Read of address 48488BD2 

Depending on the error condition, it might be possible to restart the application. 



In order to restart the application, please click the link below: 

Click here to restart EnteBilaterale 

Please note that depending on the actual exception that occured, restarting the application might not be possible. If this is the case, please report the error message to the administrator. 



Error details:
Exception message : Access violation at address 48488BD2. Read of address 48488BD2
Exception class : EAccessViolation
Exception address : 48488BD2
Exception Time : 2018-10-24 08:18:29.594
------------------------------------------------------------------------------------------------------------------------
Application Name : EnteBilaterale.exe
Application Version: 1.1.34.0
Started at : 2018-10-24 08:18:13.140
Running for : 16 seconds
Computer Name : N-20HJPF12AYAL
Compiler Version : 220
------------------------------------------------------------------------------------------------------------------------
IntraWeb Version : 14.2.1
Multi-session : False
Content Path : C:\tools\Borland\XE_Projects\EnteBilaterale\IW\web\wwwroot\
Session count : 1
Application Path : C:\tools\Borland\XE_Projects\EnteBilaterale\IW\web\
Active Form : MaintenanceForm (TMaintenanceForm)
Active Form list : [1] LoginForm (TLoginForm)
[2] MaintenanceForm (TMaintenanceForm)
Form list : [1] IWUserSession (TIWUserSession)
[2] LoginForm (TLoginForm)
[3] MaintenanceForm (TMaintenanceForm)
Browser Name : Chrome
Browser UserAgent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36
Session ID : xY7HP20eF0kfqSayat4~DW
Last Access : 2018-10-24 08:18:28.982
Callback : False
Runtime parameters : 
------------------------------------------------------------------------------------------------------------------------
Client IP address : 127.0.0.1
Request PathInfo : /$/
Request Method : POST
Request User Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36
Cookies Count : 1
------------------------------------------------------------------------------------------------------------------------
(48487BD2){EnteBilaterale.exe} [48488BD2]
(00003770){EnteBilaterale.exe} [00404770] System.@GetMem + $4
(00006956){EnteBilaterale.exe} [00407956] System.@NewUnicodeString + $E
(00006BA1){EnteBilaterale.exe} [00407BA1] System.@UStrFromPWCharLen + $25
(000BB4D8){EnteBilaterale.exe} [004BC4D8] Controls.TControl.WndProc + $2D4
(000BDB34){EnteBilaterale.exe} [004BEB34] Controls.DoAlign + $170
(0000558C){EnteBilaterale.exe} [0040658C] System.TMonitor.Destroy + $0
(00004EF3){EnteBilaterale.exe} [00405EF3] System.TObject.CleanupInstance + $1F
(0000558C){EnteBilaterale.exe} [0040658C] System.TMonitor.Destroy + $0
(00004EF3){EnteBilaterale.exe} [00405EF3] System.TObject.CleanupInstance + $1F
(0000378C){EnteBilaterale.exe} [0040478C] System.@FreeMem + $4
(00004E30){EnteBilaterale.exe} [00405E30] System.TObject.FreeInstance + $C
(0000540E){EnteBilaterale.exe} [0040640E] System.@ClassDestroy + $2
(00049340){EnteBilaterale.exe} [0044A340] Classes.TList.Destroy + $18
(00004E78){EnteBilaterale.exe} [00405E78] System.TObject.Free + $8
(000BE083){EnteBilaterale.exe} [004BF083] Controls.TWinControl.AlignControls + $19B
(00004F84){EnteBilaterale.exe} [00405F84] System.TObject.GetInterface + $4C
(000BE64D){EnteBilaterale.exe} [004BF64D] Controls.TWinControl.GetControl + $21
(000BDB80){EnteBilaterale.exe} [004BEB80] Controls.AlignWork + $30
(000BDF2D){EnteBilaterale.exe} [004BEF2D] Controls.TWinControl.AlignControls + $45
(000BE64D){EnteBilaterale.exe} [004BF64D] Controls.TWinControl.GetControl + $21
(001A98C6){EnteBilaterale.exe} [005AA8C6] IWVCLBaseContainer.TIWBaseContainer.SetIsAligning (Line 338, "..\core\IWVCLBaseContainer.pas" + 1) + $D
(001A9B1F){EnteBilaterale.exe} [005AAB1F] IWVCLBaseContainer.TIWBaseContainer.ForceAlign (Line 434, "..\core\IWVCLBaseContainer.pas" + 58) + $7
(00005431){EnteBilaterale.exe} [00406431] System.@AfterConstruction + $1D
(00003770){EnteBilaterale.exe} [00404770] System.@GetMem + $4
(00006956){EnteBilaterale.exe} [00407956] System.@NewUnicodeString + $E
(0013D614){EnteBilaterale.exe} [0053E614] IW.Common.StrLists.TIWStringList.CompareStrings (Line 1354, "..\Common\IW.Common.StrLists.pas" + 4) + $4
(0004D776){EnteBilaterale.exe} [0044E776] Classes.TStringList.Find + $3A
(0004D95E){EnteBilaterale.exe} [0044E95E] Classes.TStringList.InsertItem + $6E
(001B41D0){EnteBilaterale.exe} [005B51D0] IWCompTabControl.TabOrderCompare (Line 157, "..\core\IWCompTabControl.pas" + 2) + $4
(00135423){EnteBilaterale.exe} [00536423] IW.Common.Lists.DoInsertionSort (Line 99, "..\Common\IW.Common.Lists.pas" + 4) + $D
(00135478){EnteBilaterale.exe} [00536478] IW.Common.Lists.DoMergeSort (Line 125, "..\Common\IW.Common.Lists.pas" + 6) + $B
(001355D7){EnteBilaterale.exe} [005365D7] IW.Common.Lists.MergeSortList (Line 187, "..\Common\IW.Common.Lists.pas" + 8) + $10
(001B5548){EnteBilaterale.exe} [005B6548] IWCompTabControl.TIWTabControl.RenderHTML (Line 518, "..\core\IWCompTabControl.pas" + 22) + $B
(001ABEA5){EnteBilaterale.exe} [005ACEA5] IWHTMLContainer.TIWHTMLContainer.RenderMarkupLanguageTag (Line 150, "..\core\IWHTMLContainer.pas" + 1) + $2
(001AD158){EnteBilaterale.exe} [005AE158] IWContainer.TIWContainer.RenderComponents (Line 478, "..\core\IWContainer.pas" + 58) + $12
(001DAE79){EnteBilaterale.exe} [005DBE79] IWForm.TIWForm.RenderComponents (Line 1425, "..\core\IWForm.pas" + 1) + $4
(001D76AB){EnteBilaterale.exe} [005D86AB] IWForm.TIWForm.DoGenerateForm (Line 631, "..\core\IWForm.pas" + 104) + $18
(001F7629){EnteBilaterale.exe} [005F8629] IWAppForm.TIWAppForm.DoGenerateForm (Line 117, "..\core\IWAppForm.pas" + 2) + $4
(001FB553){EnteBilaterale.exe} [005FC553] IWBaseForm.TIWBaseForm.GenerateForm (Line 362, "..\core\IWBaseForm.pas" + 4) + $5
(0020280B){EnteBilaterale.exe} [0060380B] IWApplication.TIWApplication.GenerateActiveForm (Line 1359, "..\core\IWApplication.pas" + 27) + $6
(00202323){EnteBilaterale.exe} [00603323] IWApplication.TIWApplication.ProcessForm (Line 1209, "..\core\IWApplication.pas" + 53) + $4
(00275721){EnteBilaterale.exe} [00676721] IWServerSession.TIWServerSession.ExecuteForm (Line 856, "..\core\IWServerSession.pas" + 11) + $9
(0027520D){EnteBilaterale.exe} [0067620D] IWServerSession.TIWServerSession.DoExecuteSession (Line 746, "..\core\IWServerSession.pas" + 40) + $2
(00275583){EnteBilaterale.exe} [00676583] IWServerSession.TIWServerSession.ExecuteSession (Line 826, "..\core\IWServerSession.pas" + 44) + $7
(0026456A){EnteBilaterale.exe} [0066556A] IWServer.TIWServer.ExecuteUrl (Line 520, "..\..\private\server\IWServer.pas" + 63) + $6
(00264A39){EnteBilaterale.exe} [00665A39] IWServer.TIWServer.Execute (Line 590, "..\..\private\server\IWServer.pas" + 11) + $11
(00271DD3){EnteBilaterale.exe} [00672DD3] IWServerSession.HttpExecute (Line 88, "..\core\IWServerSession.pas" + 2) + $3
(002917CC){EnteBilaterale.exe} [006927CC] IW.Server.HTTPIndy.THTTPServerIndy.DoCommandGet (Line 235, "..\server\IW.Server.HTTPIndy.pas" + 26) + $15
(0025F998){EnteBilaterale.exe} [00660998] InCustomHTTPServer.TInCustomHTTPServer.DoExecute (Line 1426, "..\common\Indy\InCustomHTTPServer.pas" + 180) + $F
(00235D0F){EnteBilaterale.exe} [00636D0F] InContext.TInContext.Run (Line 185, "..\common\Indy\InContext.pas" + 2) + $7
(002348D2){EnteBilaterale.exe} [006358D2] InTask.TInTask.DoRun (Line 136, "..\common\Indy\InTask.pas" + 0) + $2
(0024C252){EnteBilaterale.exe} [0064D252] InThread.TInThreadWithTask.Run (Line 625, "..\common\Indy\InThread.pas" + 1) + $3
(0024BC12){EnteBilaterale.exe} [0064CC12] InThread.TInThread.Execute (Line 377, "..\common\Indy\InThread.pas" + 43) + $5
(00056ACE){EnteBilaterale.exe} [00457ACE] Classes.ThreadProc + $42
(000068A0){EnteBilaterale.exe} [004078A0] System.ThreadWrapper + $28

Print this item

  iw.15.0.14 - tiwTreeview issue
Posted by: joel - 10-24-2018, 04:28 AM - Forum: IntraWeb General Discussion - Replies (4)

I am adding an image to the tiwtreeview and since upgrading from iw14 now the treeview has double icons.

This is the code

           ItemImages.DocumentImage.Url :=
            DU.ImageLocation.WdImageUrl+'icon_user16x16.jpg';

Print this item

  TIWEdit in a TIWGrid
Posted by: dave@corplogistics.co.nz - 10-23-2018, 09:14 PM - Forum: IntraWeb General Discussion - Replies (6)

IntraWeb v14.2.3 newbie.


I add an edit into a grid:

{Grid: TIWGrid}

var
  Edit: TIWEdit ;

begin
  Edit := TIWEdit.Create(Self) ;
  Edit.Parent := Self ;
  Edit.Alignment := taRightJustify ;
  Edit.Editable := True ;
  Edit.Text := '1' ;
  Edit.OnAsyncExit := edtAsyncExit ;
  Grid.Cell[1,2].Control := Edit ;
end ;

This puts the edit in the grid in the (sort of) correct place, I then edit the value in the grid (change 1 to 2), if I then add a new row the edit goes back to it's original value (1). How do I get this to work?

Print this item

  CGI Runner Demo
Posted by: Alexandre Machado - 10-23-2018, 09:32 AM - Forum: IntraWeb General Discussion - Replies (2)

Hi guys,

there is a new demo which shows how to use the new TIWCGIRunner class (available in IW 15): 

https://github.com/Atozed/IntraWeb/tree/.../CGIRunner

You will find 2 projects there as part of CGIRunnerDemo project group:

CGIRunnerReport: A stand alone IW application which executes a CGI application

CGIReport: A std CGI application, WebBroker based, also created with Delphi, which generates a sample PDF report.

CGI applications can be used in several situations:
 
- you already have a working CGI application and want to call it from your new or existing IW application;
- You have a complex report which can't be easily ported to a multi-threaded application (have in mind that a CGI application behaves like a normal desktop application regarding multi-thread, i.e, a CGI application is basically a single-threaded console application). 
- You want to use and/or integrate 3rd party components - including report generators - which are not multi-thread friendly.

Print this item

  Bundled edition
Posted by: rhcarpenter - 10-22-2018, 02:35 AM - Forum: IntraWeb General Discussion - Replies (1)

I want to upgrade my bundled edition of Intraweb.  I have Delphi 10.2.  I wanted to upgrade to Intraweb v15.  However, the Bundled key generator sent me a new license key stating it would work with Intraweb 12 and 14.  Is there a way to get a free license key for Intraweb v15 in Delphi 10.2?

Randall H. Carpenter

Print this item

  IW15.0.14 error/change creating forms
Posted by: jeroen.rottink - 10-20-2018, 11:12 AM - Forum: IntraWeb General Discussion - Replies (2)

Hi,

I updated from IW15.0.13 to IW15.0.14 and saw the following error.

My application uses cookies to support autologin. The first form, TDlgLogin, checks a cookie and if it's ok, bypasses the login form by creating the next application form.
In IW15.0.14 the TDlgLogin form is showed instead of the next application form.

Very simplified the testcase is this:


Code:
type
  TIWForm1 = class(TIWAppForm)
    IWLabel1: TIWLabel;
  public
    constructor Create(aOwner: TComponent); override;
  end;

implementation

uses Unit2;

{$R *.dfm}

{ TIWForm1 }

constructor TIWForm1.Create(aOwner: TComponent);
begin
  inherited;
  // start form2
  TIWForm2.Create(WebApplication).Show;
  Release;
end;

initialization
  TIWForm1.SetAsMainForm;

end.

This testcase doesn't show TIWForm2 in IW15.0.14 while it does work in IW15.0.13

Using Delphi 10.1 Berlin

Print this item

  [SOLVED] Error compiling Indy 10 in FPC and patch applied
Posted by: capslock - 10-18-2018, 11:58 PM - Forum: Indy - Replies (2)

I presume there is a little problem in Indy for FPC 3.0.4, Lazarus 1.8.4, Debian x86_64:

Compile package indylaz 10.6.2: Exit code 256, Errors: 2, Hints: 4
IdSSLOpenSSLHeaders.pas(17956,49) Hint: C arrays are passed by reference
IdSSLOpenSSLHeaders.pas(17958,64) Hint: C arrays are passed by reference
IdSSLOpenSSLHeaders.pas(17963,68) Hint: C arrays are passed by reference
IdSSLOpenSSLHeaders.pas(19230,65) Hint: Local variable "LLen" does not seem to be initialized
IdSSLOpenSSLHeaders.pas(19571,10) Error: function header doesn't match the previous declaration "GetCryptLibHandle:Int64;"
IdSSLOpenSSLHeaders.pas(18191,10) Error: Found declaration: GetCryptLibHandle:QWord;

The following patch avoid this error:

Index: trunk/Lib/Protocols/IdSSLOpenSSLHeaders.pas
===================================================================
--- trunk/Lib/Protocols/IdSSLOpenSSLHeaders.pas    (revision 5478)
+++ trunk/Lib/Protocols/IdSSLOpenSSLHeaders.pas    (working copy)
@@ -832,6 +832,9 @@
   sockets,
   {$ENDIF}
   SysUtils,
+  {$IFDEF FPC}
+  DynLibs,  // better add DynLibs only for fpc
+  {$ENDIF}
   IdCTypes;
 
 //temp for compile tests
@@ -18901,10 +18904,7 @@
   IdGlobalProtocols,
   IdResourceStringsProtocols,
   IdResourceStringsOpenSSL,
-  IdStack
-  {$IFDEF FPC}
-    , DynLibs  // better add DynLibs only for fpc
-  {$ENDIF};
+  IdStack;
 
 {$IFNDEF OPENSSL_NO_HMAC}
 procedure HMAC_Init_ex(ctx : PHMAC_CTX; key : Pointer; len : TIdC_INT;


I'd like to suggest it to Atozed Team. Maybe will be useful to commit in trunk.


Thanks,

G.A. Moennich

Print this item

  Bootstrap 4 Progress
Posted by: LorenSzendre - 10-17-2018, 11:39 AM - Forum: IntraWeb General Discussion - Replies (4)

Cards are finished. Had to add 8 new region types to make all the magic work!

Also finished component badges. Component badges were created because of the deep nesting of divs and other tags that is needed by Bootstrap. They are a little "in your face", so I'll probably have an option to disable them. But I have already gotten used to them.

I have included an image of the design-time IntraWeb page as well as the output, so you can see both badges and cards.

Cheers

   

   

Print this item