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 httpGate.c 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