In CMUCL 19c, the lisp::do-input in fd-stream.lisp signals a 'socket-error which is read as lisp::socket-error. I think that it should have been ext::socket-error instead (as defined in internet.lisp).
The error happens when (eql errno unix:econnreset). Here's a transcript including a real IP address that will close the connection immediately after the accept(2). Please don't hammer that, it doesn't belong to me! Thanks, Craig Ludington $ lisp -noinit -nositeinit CMU Common Lisp 19c (19C), running on headmistress With core: /usr/local/lib/cmucl/lib/lisp.core Dumped on: Thu, 2005-11-17 08:12:58-06:00 on lorien See <http://www.cons.org/cmucl/> for support information. Loaded subsystems: Python 1.1, target Intel x86 CLOS based on Gerd's PCL 2004/04/14 03:32:47 * (read-line (sys:make-fd-stream (ext:connect-to-inet-socket "65.206.113.8" 8080) :input t :output t :element-type 'character :buffering :full)) Class not yet defined: LISP::SOCKET-ERROR [Condition of type SIMPLE-TYPE-ERROR] Restarts: 0: [ABORT] Return to Top-Level. Debug (type H for help) (KERNEL::FIND-CLASS LISP::SOCKET-ERROR T #<unused-arg>) Source: Error finding source: Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM: Source file no longer exists: target:code/class.lisp. 0] ba 10 0: (KERNEL::FIND-CLASS LISP::SOCKET-ERROR T #<unused-arg>) 1: (MAKE-CONDITION LISP::SOCKET-ERROR :FORMAT-CONTROL "Socket connection reset: ~A" :FORMAT-ARGUMENTS ...) 2: (ERROR LISP::SOCKET-ERROR :FORMAT-CONTROL "Socket connection reset: ~A" :FORMAT-ARGUMENTS ...) 3: (LISP::DO-INPUT #<Stream for descriptor 5>) 4: (LISP::INPUT-CHARACTER #<Stream for descriptor 5> NIL NIL) 5: (READ-LINE #<Stream for descriptor 5> T NIL NIL) 6: (INTERACTIVE-EVAL (READ-LINE (SYSTEM:MAKE-FD-STREAM # :INPUT T :OUTPUT ...))) 7: (LISP::%TOP-LEVEL) 8: ((LABELS LISP::RESTART-LISP SAVE-LISP)) 0] 0 *
