[twsocket] bug in TCustomWSocket? (regarding wsoNoReceiveLoop)

2008-04-09 Thread Merijn Bosma
I've been using ICS for quite a while now, and a few days ago I came 
across something strange.
One of our larger customers had some extra modules installed, causing a 
lot of more tcp clients connecting to the tcp server.

Every now and then (somewhere between 1 minute and 3 hours) the tcp 
server would get up to 100% cpu utilization out of the blue.
After some searching we discovered that this was caused by the 
OnDataAvailable event for one of the connected clients being
called continuously.

Searching the ICS mailinglist archive a found this article 
http://marc.info/?l=twsocket&m=119628217011905&w=2 which pointed me
in the direction of the wsoNoReceiveLoop option. We've added this option 
to the client sockets and the problem is gone.

Now the mystery:
If I understood correct, you can get an endless loop if you don't read 
all received data in the OnDataAvailable event. The event will
keep being fired until all data is read, unless you add wsoNoReceiveLoop.

The thing is that we _always_ call ReceiveStr() in the OnDataAvailable 
event, I think this should always read all data received.
Is this a bug in ReceiveStr() or a bug regarding wsoNoReceiveLoop? Or is 
it just me not fully grasping it?
I'd really like an explanation why things start working now, so I am 
sure the problem is really solved.

thanks and regards,

Merijn Bosma

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Proposal for new content-type in function DocumentToContentType in OverbyteIcsHttpSrv.pas

2008-04-09 Thread Bjørnar Nielsen
Hello,

The comment about the registry was there before I made any changes. My only 
change was to add 'text/xml' as content-type for extension 'xml'. For now my 
only need is this extra content-type, not another way of managing the list of 
content-types.

When using Flash, if you have the need to do cross-domain-scripting, you have 
to have a file called crossdomain.xml on the root, defining the rules for 
crossdomain-scripting. And the content-type has to be text/xml when downloaded 
to flash from a server in order to work.

Regards Bjørnar

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of DZ-Jay
Sent: 8. april 2008 16:11
To: ICS support mailing
Subject: Re: [twsocket] Proposal for new content-type in function 
DocumentToContentType in OverbyteIcsHttpSrv.pas

On Apr 8, 2008, at 09:45, Bjørnar Nielsen wrote:
> { We probably should use the registry to find MIME type for file
> types }

Hello:
I don't agree that the Registry should be used, because then you limit
the application to those MIME types registered at the local host.  What
I propose is that a simple list of mappings between extensions and MIME
types be kept and maintained with ICS (there are many of these
available already), and that an efficient mechanism be built into the
HttpSrv to load these on start up to some sort of searchable memory
structure.  I have done this in the past using a custom Red and Black
Balanced Tree, which can then be searched to find the MIME type of a
file extension (and even its transport encoding).  I actually
implemented this for automatic file encodings of SMTP attachments.

By keeping it in a simple list, like Apache does, it can be easily
extended and maintained.

dZ.

--
DZ-Jay [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html

--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

No virus found in this incoming message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.22.9/1364 - Release Date: 07.04.2008 
18:38


No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.519 / Virus Database: 269.22.10/1366 - Release Date: 08.04.2008 
17:03

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be