Author: ehuelsmann Date: Sat Feb 4 08:14:30 2006 New Revision: 38
Modified: public_html/index.shtml usocket/trunk/backend/cmucl.lisp Log: Implement CMUCL error mapping and update status table.
Modified: public_html/index.shtml ============================================================================== --- public_html/index.shtml (original) +++ public_html/index.shtml Sat Feb 4 08:14:30 2006 @@ -100,7 +100,7 @@ <tr> <td>Identify socket errors generated.</td> <td class="DONE" title="Implemented">DONE</td> - <td class="WIP" title="Work in progress">WIP</td> + <td class="DONE" title="Implemented">DONE</td> <td class="TODO">TODO</td> <td class="DONE" title="Implemented">DONE</td> <td class="DONE" title="Implemented">DONE</td>
Modified: usocket/trunk/backend/cmucl.lisp ============================================================================== --- usocket/trunk/backend/cmucl.lisp (original) +++ usocket/trunk/backend/cmucl.lisp Sat Feb 4 08:14:30 2006 @@ -5,12 +5,19 @@
(in-package :usocket)
+ +;; CMUCL error handling is brain-dead: it doesn't preserve any +;; information other than the OS error string from which the +;; error can be determined. The OS error string isn't good enough +;; given that it may have been localized (l10n). +;; +;; Just catch the errors and encapsulate them in an unknown-error (defun handle-condition (condition &optional (socket nil)) "Dispatch correct usocket condition." (typecase condition - (condition (error 'usocket-error - :real-condition condition - :socket socket)))) + (simple-error (error 'unknown-error + :real-condition condition + :socket socket))))
(defun socket-connect (host port &optional (type :stream)) (let* ((socket (ext:connect-to-inet-socket (host-byte-order host) port type))