[hunchentoot-devel] Socket errors during requests

Andrei Stebakov lispercat at gmail.com
Thu May 21 19:44:37 UTC 2009


I tried the development version from svn://
bknr.net/svn/trunk/thirdparty/hunchentoot
Actually, read-initial-request-line has the condition:

    (handler-case
        (let ((*current-error-message* "While reading initial request
line:"))
          (with-mapped-conditions ()
            (read-line* stream)))
      ((or end-of-file
           #-:lispworks usocket:timeout-error) ()
        nil))))

Only it doesn't cover the sbcl type error that I have. If I add #+sbcl
sb-sys:io-timeout to the handler-case error list, the error is suppressed,
but I am not sure it it's the proper fix for everyone. Basically the
function that works for me is following:
(defun read-initial-request-line (stream)
  "Reads and returns the initial HTTP request line, catching permitted
errors
and handling *BREAK-EVEN-WHILE-READING-REQUEST-TYPE-P*.  If no request could
be read, returns NIL.  At this point, both an end-of-file as well as a
timeout condition are normal.  end-of-file will occur when the client has
decided to not send another request but close the connection.  A timeout
indicates that the connection timeout established by Hunchentoot has expired
and we do not want to wait for another request any longer."
  (let ((*break-on-signals* (and *break-even-while-reading-request-type-p*
                                 *break-on-signals*)))
    (handler-case
        (let ((*current-error-message* "While reading initial request
line:"))
          (with-mapped-conditions ()
            (read-line* stream)))
      ((or end-of-file
        #-:lispworks usocket:timeout-error
        #+sbcl sb-sys:io-timeout) ()
        nil))))


Thank you,
Andrei

On Thu, May 21, 2009 at 12:10 PM, Edi Weitz <edi at agharta.de> wrote:

> On Thu, May 21, 2009 at 5:40 PM, Andrei Stebakov <lispercat at gmail.com>
> wrote:
>
> > What's the link to dev version of hunchentoot (I don't know how to find
> it
> > on bknr.net)?
>
> Start here
>
>  http://bknr.net/trac/browser
>
> and then either look at "trunk/thirdware" or at "ediware".
>
> > Could you be so kind to put instructions how to get the dev version on
> your
> > main page for Hunchentoot at http://www.weitz.de/hunchentoot/?
>
> I'm reluctant to do that.  I think that someone who wants to work with
> the "cutting edge" version should also be prepared to subscribe to the
> dev mailing list where this link has been mentioned a couple of times.
>  I don't really want to encourage unsuspecting users to use the dev
> version.
>
> Edi.
>
> _______________________________________________
> tbnl-devel site list
> tbnl-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/tbnl-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/tbnl-devel/attachments/20090521/ec3c8ebd/attachment.html>


More information about the Tbnl-devel mailing list