> Scenario 1 (how to reproduce)
> As I said it is very easy to reproduce if you have access to any web server
> with public address (you can test it with private web server if wapgw has
> access to it, of course).
> Fisrt of all configure some port to DROP (not REJECT!) incoming SYN packets
> (or all packets).
> Then take 2 phones or phone&fakewap. Make request to configured port from first
> device. Kannel will block for 1-2 minutes. If you immediatly send request from
> another device you will get timeout error.

Hmmm, ok...

> Scenario 2 (kannel process description)
> 1. http library get request from queue pending_requests
> 2. make connect to host
> 3. send request (nonblock realized by qwpoll and fdset)
> 4. create callback for reply
> 5. go to step 1.
> 
> Take step 2:
> 2.1 connect() send SYN to host
> 2.2 Wait for ACK (blocking till some minutes if no ACK or RST)
> 2.3 And handshaking and return connected socket or error.
> 
> So if we block at 2.2 then all requests in pending_request queue will be lost
> due timeout for session machine.

sounds reasonable, yes.

> Is this patch was tested by someone? With this patch even working
> request doesn't work:

:(((, no I didn't test.

> BTW, I have patch that solve problem of blocking connect, but it is not
> so complex as introduced by Netikos - it doesn't handle maximum number of
> open connections to the server and don't use getaddrinfo for resolving.

so you should have posted that already to the list to be commited to
cvs :))) please forward it to the list as a clean diff -u against the
current cvs tree.

Stipe

[EMAIL PROTECTED]
-------------------------------------------------------------------
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
-------------------------------------------------------------------
wapme.net - wherever you are

Reply via email to