?
Solved

Help on resoving an "ERangeError" when using Indy 10 calling IdHTTP.Get with IdSSLIOHandlerSocketOpenSSL

Posted on 2008-02-08
5
Medium Priority
?
2,159 Views
Last Modified: 2013-11-23
Hi all,

I am using Borland Delphi 6 Professional in conjunction with the Indy 10 (10.0.0.17 to be precise) components in a program that communicates with a secure web server via HTTPS/SSL. The two indy components I am using are IdHTTP linked to an IdSSLIOHandlerSocketOpenSSL to handle the SSL side of things. The SSL uses a simple authentication method (username and password) combo - no certificate handling in play.

The program is designed to send 'jobs' to the web-server by sending XML strings (which are commands) to the web server. Typically the program will be sending between 5 and 30 jobs out a time each day.

For some reason, the program began experiencing "ERangeErrors" during the sending of the jobs. Specifically when the IdHTTP.Get method is called. Unfortunately I have been unable to reproduce this problem at my end, it is only happening on two of the clients workstations (which logically suggests a possible hardware issue such as memory?).

We tried upgrading the memory on the workstations to 1.5GB, and for the first couple of days, the error didn't occur, but it's started happening again. But having checked the memory\processes during execution, there seems to be plenty of memory available for the program to use.

I've found some helpful articles before but all suggested solutions have yet to solve the problem.

One article I recently found: http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_21380718.html

suggests including a path in Delphi to the Indy source files. I am going to try it to see if it works, but any other helpful advice would be much appreciated.

Thanks

- Paul (GSD)
0
Comment
Question by:GSDAssociates
  • 2
4 Comments
 
LVL 21

Expert Comment

by:ziolko
ID: 20851460
you can try disabling range checking in compiler options or use:
{$R-}
code that generates range check errors
{$R+}

this happens for example if you want use such structure:

MIB_UDPTABLE_OWNER_PID = packed record
    dwNumEntries: DWORD;
    table: array [0..0] of MIB_UDPROW_OWNER_PID;
end;

and then iterate thru table like this:

var mibtable: MIB_UDPTABLE_OWNER_PID;

for cnt := 0 to  mibtable.dwNumEntries - 1 do
  mibtable.table[cnt]

then if you have range checking on you'll get ERangeError but with range checking off it will work fine

ziolko.
0
 

Author Comment

by:GSDAssociates
ID: 20851637
Hi ziolko,

Unfortuantley that is one of the solutions I have already tried, and the range error still occurs. Thanks for the comment though.

- Paul
0
 
LVL 21

Accepted Solution

by:
ziolko earned 700 total points
ID: 20852149
>>Unfortuantley that is one of the solutions I have already tried, and the range error still occurs.

hmm looks like some bug in Indy, but if you can't reproduce it it'll be hard to track down.
try download latest Indy version (I think it's 10.0.5 now) or downgrade to Indy 9 which is marked as "stable" by indyproject.org

ziolko.
0
 
LVL 1

Expert Comment

by:Computer101
ID: 21197669
Forced accept.

Computer101
EE Admin
0

Featured Post

Evaluating UTMs? Here's what you need to know!

Evaluating a UTM appliance and vendor can prove to be an overwhelming exercise.  How can you make sure that you're getting the security that your organization needs without breaking the bank? Check out our UTM Buyer's Guide for more information on what you should be looking for!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
The Internet has made sending and receiving information online a breeze. But there is also the threat of unauthorized viewing, data tampering, and phoney messages. Surprisingly, a lot of business owners do not fully understand how to use security t…
The video will let you know the exact process to import OST/PST files to the cloud based Office 365 mailboxes. Using Kernel Import PST to Office 365 tool, one can quickly import numerous OST/PST files to Office 365. Besides this, the tool also comes…
Free Data Recovery software is an advanced solution from Kernel Tools to recover data and files such as documents, emails, database, media and pictures, etc. It supports recovery from physical & logical drive after a hard disk crash, accidental/inte…

594 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question