Mark H Weaver <m...@netris.org> writes: Hi Mark,
Thanks, > > While it is true that the RFCs allow a TCP connection to be "aborted" by > a RST segment, this is an error condition. It's not a proper way to end > an HTTP connection under normal circumstances. > > I believe the server you are trying to talk to is violating the HTTP > protocol. Among other things, I believe that a RST segment may cause > the receiving side to discard any input buffers that have not yet been > read by the client. Yes it is violateing the protocol. Sorry to have not mentioned that the response recieved is from the firewall not the real server. > I see nothing in RFC 2616 that allows this behavior. In fact, section > 10.4 explicitly mentions the danger that resetting the connection may > cause data loss. > >> My question is how I can I handle this, ie, read the response body >> and ignore the RST >> in Guile without changing anything in libguile? > > I'm sorry, but I don't see an easy way to work around this problem > (which doesn't necessarily mean it can't be done). > > Out of curiosity, do you know what software is running on this server? > > Have you checked to see whether the server resets the connection when > talking to a different HTTP client? > Yes, both curl and brower receive RST but do not report anything conceivable to the user. I think there's no elegant way to deal with this condition with Guile, maybe I should try other alternative to work around this.