My best guess at this point is that the problem happens below the lisp level at the socket level.
So if I open the socket and wait for a request from either the local machine or a remote machine I should get my function called with a stream that contains the input characters which are the headers of the request, at minimum. The local machine requests always prints the request type. request type: GET I turned on some debugging and I see one of two failure conditions occur. Either we get nothing in the stream and only see request type: and nothing else when sent from a remote machine. I modified the read-char-no-hang loop to print out each character and it gets nothing from the stream. Thus stream creation is broken in GCL. Or if the remote request is successful we get a normal request followed by a series of #xFF characters. Apparently there is not an agreement about the EOF character. This causes Axiom to loop looking for EOF. I inserted code to check for this condition. Thus EOF checking is broken in GCL. To make the remote request succeed you simply need to hammer on the link very fast for a while and the request will get thru. However, that raises another problem that the XMLHttpRequest objects can hang. I wrote some javascript code to do a timer pop if I get no response. Once there is an outstanding XMLHttpRequest that does not get a response then the connection is permanently hung. All of this code works perfectly if you browse from the local machine. Tim _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
