Hi Mansur,

> Below is link to httpGate trace (it seems there is no strace in
> FreeBSD, so I used "truss"):
> http://pastebin.com/gs3t7aDL
> or should I include trace log directly into the message?

No, that's fine. I've downloaded it. Thanks!

Looking at the output

    4.13311: read(4,"GET / HTTP/1.1\r\nHost: mtmlab.homedns.org\r\nUser-Agent:

we see that 'httpGate' correctly fully reads the first line. So it is
not the receiving side (as I suspected), and thus has nothing to do with
the fix last March.

Also, your observations were right in that only a parial line is sent:

   10.13311: write(3,"GET /",5)                        = 5 (0x5)
   11.13311: write(3," HTTP/1.1\r\n",11)               = 11 (0xb)

But this is correct, it is explicitly programmed in lines 243 ff. of

   wrBytes(srv, buf, p - buf);  // This writes "GET /"
   wrBytes(srv, q, p - q);  // and this writes the rest of the line

To my understanding 'httpGate' behaves correctly. It should be all right
to send a single line in two chunks.

So we are back at the beginning. Why does 'line' return before it
received a complete line? I do not agree with you that it might be a
problem on the TCP-level due to transmitting the line in two packets.

'line' only terminates when it receives either end-of-line or
end-of-file. Could it be that some signal is involved, or something
unexpected happens on the receiving (picolisp) side?

Any ideas anybody?

♪♫ Alex
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to