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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 82,256
» Latest member: dwg88com
» Forum threads: 2,408
» Forum posts: 11,315

Full Statistics

Online Users
There are currently 491 online users.
» 0 Member(s) | 488 Guest(s)
Applebot, Bing, Google

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: 621
VCL conversion
Forum: Delphi General Discussion
Last Post: tobenschain
06-20-2026, 05:00 AM
» Replies: 0
» Views: 69
TIWjQDBGrid changing UI
Forum: IntraWeb General Discussion
Last Post: BoostedCruiser
06-08-2026, 02:02 AM
» Replies: 36
» Views: 70,348
TIWjQDBGrid erratic behav...
Forum: IntraWeb General Discussion
Last Post: Fabrizio Conti
06-04-2026, 09:14 AM
» Replies: 3
» Views: 472
Access Violation When Val...
Forum: IntraWeb General Discussion
Last Post: Alexandre Machado
06-03-2026, 08:47 AM
» Replies: 2
» Views: 516
Bootstrap5
Forum: IntraWeb General Discussion
Last Post: geraldtatum
06-02-2026, 06:24 AM
» Replies: 1
» Views: 412
weakpackageunit contains ...
Forum: IntraWeb General Discussion
Last Post: rlebeau
05-26-2026, 04:56 PM
» Replies: 4
» Views: 526
Custom 404 handler
Forum: IntraWeb General Discussion
Last Post: CfawesDwale
05-21-2026, 08:02 AM
» Replies: 0
» Views: 255
PopUp Menu
Forum: IntraWeb General Discussion
Last Post: alex.trejo@tttnet.com.mx
05-13-2026, 04:35 AM
» Replies: 4
» Views: 8,207
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,121

 
  standalone in 15.0.6
Posted by: clockon - 06-27-2018, 02:08 AM - Forum: IntraWeb General Discussion - Replies (2)

Hi

i am trying to create/upgrade to the latest intraweb 15.0.6 from version 11.

We have a custom standalone server, now the references i have seen state to use the code:

IWStandAloneServer1.Start(TIWHTTPServerModule);

my problem is that there is no component TIWHTTPServerModule in the source or installation folders, im on ultimate with source.

has anyone setup a custom standalone server with v15?

Also none of the demos help as they are all for v14, otherwise i am going back a version.

Print this item

  Is it possible to use new version of Indy 10
Posted by: OldBob1938 - 06-26-2018, 11:30 PM - Forum: Indy - Replies (28)

I have a couple of large applications developed in C++Buiilder 2007 that use Indy 10.1.15.  They do work fine and I'm not interested in converting them to a newer version of Rad Studio.  One of the owners wants to change from using his current mail host to G-Suite, which puts me in a bit of a pickle.  The old embedded email part of the program was just plain.  No TLS/SSL.  I'm having the problem that many others faced with the program not being able to load SSL libraries.  I did put the appropriate dlls for OpenSSL 1.02 in the programs folder.  The program does seem to try to use these dlls, but something else is getting in the way. 

I've used WhichFailedToLoad() and get a strange response whether the dlls are in my program directory or not.  Here's what WhichFailedToLoad() returns

SSL_CTX_set_info_callback_indy
X509_STORE_CTX_get_app_data_indy
X509_get_notBefore_indy
X509_get_notAfter_indy
SSL_SESSION_get_id_indy
SSL_SESSION_get_id_ctx_indy
SSL_CTX_get_version_indy
SSL_CTX_set_options_indy
des_set_odd_parity
des_set_key
des_ecb_encryp

The IdOpenSSLSetLibPath isn't available in the Indy 10.1.15 to force the program to use the dlls from a specific directory.  It is available in the the version in Seattle, which I have.  But, I need to solve this problem with the code base that I have in BCB2007 ... it's a pretty big program.   I have thought of updating to a later version of Indy, but don't know what the effect would be on the overall program, or even if it is possible given that it's unicode.  The only part of Indy 10 that I'm using is the units related to sending mail. 

Other than that, I do need to solve the inability to load the OpenSSL dlls.    Can now load the dlls, but had to use dlls  from 096.  They worked, but I did have to tag the gmail account I was using as an insecure app.  I don't know how well that will work for G-Suite.  The G-Suite account is ready for use, but the customer is still trying to get a master password to their current webhost that will allow them to transfer their MX records.

Print this item

  Intraweb ISAPI DLL
Posted by: msgopala - 06-25-2018, 03:12 PM - Forum: IntraWeb General Discussion - Replies (2)

Seattle10
Intraweb 14.2.5
FastReports 5.0
TMS Intraweb Components
Raize 6.2.1

After deployment, I can access the dll page once. After closing out the page isnt accesible anymore. There is no error log or exception log.

I have set allowmultipleusersessions to true in the servercontroller.

Thanks in advance.

Print this item

  Re: 404 in Intraweb 14.2.3
Posted by: MJS@mjs.us - 06-23-2018, 05:12 PM - Forum: IntraWeb General Discussion - Replies (5)

>>>>Posted: Nov 3, 2017 7:52 AM    in response to: Gerrit Schurer
>>>>Gerrit Schurer wrote:
>>>>Context : Intraweb 14.2.3, Delphi Tokyo 10.2
>>>>My Intraweb application has the RestartExpiredSession set to true.

>>>In my previous Intraweb version this resulted in a restart of a
>>>>session whenever I restarted the standalone server application
>>>>and clicked anything in the old browser session (or waited for
>>>>an asynchronous timer event to happen). In 14.2.3 I get a 404
>>error ? Maybe it is a simple setting I missed ? Maybe I can get
>>>>around it or create a custom 404 page that does the restarting.
>>>>How can I create such a page ?

>>I'm also experiencing this but just on async events when the session
>>expires or is invalid from recycling the service.



This still appears to happen (using 14.2.7) but only on mobile Safari.  


To reproduce: 

  • Access the IW page.
  • Swipe away the browser.
  • Wait until the session ends.
  • Access the IW page again (without using a bookmark, Safari appears to cache the last accessed page).
  • In my case, I click past an initial CGDevTools dialog then get a 404.  Clicking on the IW 404 page fixes it as does accessing through a bookmark.
     
Can provide a link to demonstrate if needed.

Print this item

  idtcpserver network flood
Posted by: Madammar - 06-20-2018, 11:43 PM - Forum: Indy - Replies (1)

hi , i am facing some kind of ddos attack on my idtcpserver port

my firewall works really fine on my ubuntu machine to block those bad ips and drop there packets

but why tidtcpserver application gets unresponsive while such attack is happened ?

i dont have any none thread safe access in my code

here is the full server code


Code:
unit servrfrm;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.SyncObjs, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent,
 IdCustomTCPServer, IdTCPServer, IdThreadSafe, IdYarn, idGlobal, IdTCPConnection,
 IdContext, IdSocketHandle, Vcl.StdCtrls, Vcl.ExtCtrls, DateUtils, StrUtils;


type
 TConnection = class(TIdServerContext)
 private
 IP: String;
 Connected: TDateTime;


 public
 OutboundCache: TIdThreadSafeStringList;
 //create connection
 constructor Create(AConnection: TIdTCPConnection; AYarn: TIdYarn; AList: TIdContextThreadList = nil); override;
 destructor Destroy; override;

 //sending methods
 procedure SendCommandWithParams(const Command: String);



 end;

type
 Trsrvfrm = class(TForm)
   TcpServer: TIdTCPServer;
   Panel1: TPanel;
   Edit1: TEdit;
   Button1: TButton;
   Button2: TButton;
   Memo1: TMemo;
   procedure TcpServerConnect(AContext: TIdContext);
   procedure TcpServerExecute(AContext: TIdContext);
   procedure Button1Click(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure TcpServerDisconnect(AContext: TIdContext);
 private
   procedure UpdateBindings;
   { Private declarations }
 public
   { Public declarations }
 end;

var
 rsrvfrm: Trsrvfrm;

implementation
uses constants;
{$R *.dfm}


{ TConnection }

constructor TConnection.Create(AConnection: TIdTCPConnection; AYarn: TIdYarn;
 AList: TIdContextThreadList);
begin
 inherited;
 OutboundCache := TIdThreadSafeStringList.Create;
end;

destructor TConnection.Destroy;
var
 Cache: TStringList;
 I: integer;
begin

 if OutboundCache <> nil then
 begin
   Cache := OutboundCache.Lock;
   try
     for I := 0 to Cache.Count - 1 do
       Cache.Objects[I].Free;
   finally
     OutboundCache.Unlock;
   end;
   OutboundCache.Free;
 end;



 inherited;
end;



procedure TConnection.SendCommandWithParams(const Command : String);
var
scmd : string;
begin

scmd := '1'+Command;


OutboundCache.Add(scmd);

end;





procedure Trsrvfrm.Button1Click(Sender: TObject);
begin
TcpServer.ContextClass := TConnection;

UpdateBindings;
TcpServer.Active := true;
end;

procedure Trsrvfrm.Button2Click(Sender: TObject);
begin
TcpServer.Active := False;
end;


procedure Trsrvfrm.UpdateBindings;
var
 Binding: TIdSocketHandle;
begin
 TcpServer.DefaultPort := StrToInt(Edit1.Text);
 TcpServer.Bindings.Clear;
 Binding := TcpServer.Bindings.Add;
 Binding.IP := '0.0.0.0';
 Binding.Port := StrToInt(Edit1.Text);
end;

procedure Trsrvfrm.FormDestroy(Sender: TObject);
begin
TcpServer.Active := False;
TcpServer.Destroy;
end;

procedure Trsrvfrm.TcpServerConnect(AContext: TIdContext);
var
CLIENTCONN: TConnection;
begin
CLIENTCONN := AContext as TConnection;
CLIENTCONN.Connection.IOHandler.MaxLineLength := Maxint;
CLIENTCONN.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
CLIENTCONN.Connection.Socket.UseNagle := False;
CLIENTCONN.IP := AContext.Binding.PeerIP;
CLIENTCONN.Connected := Now;







end;

procedure Trsrvfrm.TcpServerDisconnect(AContext: TIdContext);
var
CLIENTCONN: TConnection;
begin
CLIENTCONN := AContext as TConnection;

end;

procedure Trsrvfrm.TcpServerExecute(AContext: TIdContext);
var
Connection: TConnection;
Command: String;
cmdhandle : string;
Startercommand : String;
Params: array [1 .. 200] of String;
Cache, OutboundCmds: TStringList;
ParamsCount, P: integer;
ReceiveParams: BOOLEAN;
I: integer;
DECODES : String;

begin

sleep(10);

Connection := AContext as TConnection;

// check for pending outbound commands...
OutboundCmds := nil;
try
Cache := Connection.OutboundCache.Lock;
try
if Cache.Count > 0 then
begin
OutboundCmds := TStringList.Create;
OutboundCmds.Assign(Cache);
Cache.Clear;
end;
finally
Connection.OutboundCache.Unlock;
end;

if OutboundCmds <> nil then
begin

for I := 0 to OutboundCmds.Count - 1 do
begin
AContext.Connection.IOHandler.Writeln(OutboundCmds.Strings[I],IndyTextEncoding_UTF8);
end;

end;

finally
if OutboundCmds <> nil then
begin
for I := 0 to OutboundCmds.Count - 1 do
begin
OutboundCmds.Objects[I].Free;
end;
end;
OutboundCmds.Free;
end;

// check for a pending inbound command...
if AContext.Connection.IOHandler.InputBufferIsEmpty then
begin
AContext.Connection.IOHandler.CheckForDataOnSource(100);
AContext.Connection.IOHandler.CheckForDisconnect;
if AContext.Connection.IOHandler.InputBufferIsEmpty then
begin
Exit;
end;
end;



Startercommand := AContext.Connection.Socket.ReadLn(IndyTextEncoding_UTF8);

Command := Startercommand;



if Command = '' then
begin
AContext.Connection.Disconnect;
Exit;
end;

ReceiveParams := False;


//Command Type

if Command[1] = '1' then // command with params
begin
Command := Copy(Command, 2, MaxInt);
ReceiveParams := true;
end;


if ReceiveParams = true then // params is incomming
begin
DECODES := Command;

ParamsCount := 0;
while (DECODES <> '') and (ParamsCount < 200) do
begin
Inc(ParamsCount);
P := Pos(Sep, DECODES);
if P = 0 then
Params[ParamsCount] := DECODES
else
begin
Params[ParamsCount] := Copy(DECODES, 1, P - 1);
Delete(DECODES, 1, P);
end;
end;
end;

cmdhandle := Params[1];



if cmdhandle = '' then
begin
AContext.Connection.Disconnect;
Exit;
end;



if cmdhandle = 'Ping' then
begin
Connection.SendCommandWithParams('pong' + sep);
end;


end;

end.




what could be the problem with in the code ?

Print this item

Information IntraWeb 15.0.6 update is available
Posted by: Alexandre Machado - 06-19-2018, 09:52 AM - Forum: IntraWeb General Discussion - No Replies

Hi guys,

new maintenance update is available for IntraWeb 15:

https://www.atozed.com/2018/06/15-0-6/

Version history here: https://www.atozed.com/2018/06/15-0-6-h/

enjoy!  Smile

Print this item

  Help with Let's Encrypt auto renewal
Posted by: ioan - 06-18-2018, 05:48 PM - Forum: IntraWeb General Discussion - Replies (9)

I'm trying to see if I can configure "Let's Encrypt" to work with Intraweb.  I'm pretty sure the certificates work fine, but I have problems with the auto renewal that has to run by itself in a scheduled task. I'm using win-acme: https://github.com/PKISharp/win-acme

When trying to obtain a certificate, you run a the following command:

Code:
letsencrypt.exe --plugin manual --emailaddress my@email.com --manualhost www.somewebsite.com --webroot D:\myapp\wwwroot --test

After running the command, letsencrypt.exe creates a directory in d:\myapp\wwwroot, something like /.well-known/acme-challenge/ with a temporary file inside (aaabbbccc) that "let's encrypt" needs access to, for verification. 

The problem I'm having is that after I run the letsencrypt.exe command, if I try to open

Code:
http://www.somewebsite.com/.well-known/acme-challenge/aaabbbccc

it won't work, intraweb doesn't let me have (or at least I don't know to make it work) a path like that to access a static file.

What's the best way to do this? 

Thanks.

Print this item

  Access to secure url returning ssl error
Posted by: cprmlao@hotmail.com - 06-16-2018, 01:52 PM - Forum: Indy - Replies (3)

I am using XE8.
My openssl dlls are in 1.0.2.13 version.
 
I have the next site with the documentation  to get some currency exchange values:
https://api.promasters.net.br/cotacao/#documentacao

I am trying the next code, but I get an error:

   

Code:
'Error connecting with SSL.'#$D#$A'error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure' 

    
if I put the next line into browser "http://api.promasters.net.br/cotacao/v1/valores" it returns the correct values.

How could I fix it?

My code:

        
Code:
const ss='http://api.promasters.net.br/cotacao/v1/valores';
        var
          s: string;
          lHTTP: TIdHTTP;
          HandlerSock:TIdSSLIOHandlerSocketOpenSSL;
        begin
          lHTTP := TIdHTTP.Create(nil);
          lHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
          try
            HandlerSock:=TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);
            HandlerSock.SSLOptions.Method := sslvSSLv23;
            HandlerSock.SSLOptions.SSLVersions := [sslvTLSv1_2, sslvTLSv1_1, sslvTLSv1];
            lHTTP.IOHandler := HandlerSock;
            lHTTP.HandleRedirects := True;
            s := lHTTP.Get(ss);
            ShowMessage(s);
          finally
            lHTTP.Free;
          end;
        end;

Print this item

  IdAntiFreezeBase.pas(180): F2051 IdIOHandlerSocket different version
Posted by: erwinmars - 06-15-2018, 06:14 PM - Forum: Indy - Replies (6)

I try to compile the Indy Demo programs. I used the the demo version.

I've installed Indy Version 10.6.2.5366, which was installed with Embarcadero RAD Studio 10.2.3. I try also the current SVN version which gets the same result.

Most of the demos could be compiled after correcting some wrong units and wrong property usage. 

I stay and where not able to compile the IndyFTP project. I get always message:

[dcc32 Fataler Fehler] IdAntiFreezeBase.pas(180): F2051 Unit IdIOHandlerSocket wurde mit einer unterschiedlichen Version von IdGlobal.IdDisposeAndNil compiliert

(in English: [dcc32 Fatal error] IdAntiFreezeBase.pas (180): F2051 Unit IdIOHandlerSocket was compiled with a different version of IdGlobal.IdDisposeAndNil)

I've checked the timestamps of the *.pas and *.dcu files, but there where no changes after I've installed RAD 10.2.3.

Erwin

Print this item

  Question: New IW-15 feature Http.sys Deployment
Posted by: jorgo2018 - 06-15-2018, 02:05 PM - Forum: IntraWeb General Discussion - Replies (5)

Hallo,

we have some IntraWeb SA applications.
Is it possible with IW-15 to run multiple apps on one port?

Can I address them like:

1.) localhost:8888/app1
2.) localhost:8888/app2

Or how do I understand that?

Best regards

Print this item