From ehuelsmann at common-lisp.net Tue Sep 4 22:52:04 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Tue, 4 Sep 2007 18:52:04 -0400 (EDT) Subject: [usocket-cvs] r286 - usocket/trunk/backend Message-ID: <20070904225204.675D21703F@common-lisp.net> Author: ehuelsmann Date: Tue Sep 4 18:52:04 2007 New Revision: 286 Modified: usocket/trunk/backend/sbcl.lisp Log: Fix sbcl/ecl problems pointed out by Yaroslav Kavenchuk . Modified: usocket/trunk/backend/sbcl.lisp ============================================================================== --- usocket/trunk/backend/sbcl.lisp (original) +++ usocket/trunk/backend/sbcl.lisp Tue Sep 4 18:52:04 2007 @@ -32,7 +32,7 @@ (sb-alien:cast buf (* sb-alien:char)) 256))) (when (= result 0) - (cast buf sb-alien:c-string)))))) + (sb-alien:cast buf sb-alien:c-string)))))) #+ecl @@ -48,8 +48,7 @@ "#include ") (ffi:clines - "#include " - "#include ") + "#include ") #+:prefixed-api (ffi:clines @@ -67,13 +66,12 @@ (defun get-host-name () (ffi:c-inline () () :object - "{ char buf[256]; - int r = gethostname(&buf,256); + "{ char *buf = GC_malloc(256); - if (r == 0) - @(return) = make_simple_base_string(strndup(&buf,255)); + if (gethostname(buf,256) == 0) + @(return) = make_simple_base_string(buf); else - @(return) = Cnil; + @(return) = Cnil; }" :one-liner nil :side-effects nil)) (defun read-select (read-fds to-secs &optional (to-musecs 0)) From ehuelsmann at common-lisp.net Tue Sep 4 22:54:28 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Tue, 4 Sep 2007 18:54:28 -0400 (EDT) Subject: [usocket-cvs] r287 - usocket/trunk/backend Message-ID: <20070904225428.93B4C1703F@common-lisp.net> Author: ehuelsmann Date: Tue Sep 4 18:54:28 2007 New Revision: 287 Modified: usocket/trunk/backend/clisp.lisp Log: Fix clisp problem pointed out by Matthew Kennedy and Yaroslav Kavenchuk. Modified: usocket/trunk/backend/clisp.lisp ============================================================================== --- usocket/trunk/backend/clisp.lisp (original) +++ usocket/trunk/backend/clisp.lisp Tue Sep 4 18:54:28 2007 @@ -13,6 +13,8 @@ :OUT :ALLOCA) (len ffi:int)) #+win32 (:library "WS2_32") + (:language #-win32 :stdc + #+win32 :stdc-stdcall) (:return-type ffi:int)) @@ -73,7 +75,7 @@ (element-type 'character)) ;; clisp 2.39 sets SO_REUSEADDRESS to 1 by default; no need to ;; to explicitly turn it on; unfortunately, there's no way to turn it off... - (declare (ignore reuseaddress reuse-address)) + (declare (ignore reuseaddress reuse-address reuse-address-supplied-p)) (let ((sock (apply #'socket:socket-server (append (list port :backlog backlog) From ehuelsmann at common-lisp.net Mon Sep 17 18:59:30 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 14:59:30 -0400 (EDT) Subject: [usocket-cvs] r288 - in usocket/trunk: . backend Message-ID: <20070917185930.64BFD3C079@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 14:59:29 2007 New Revision: 288 Modified: usocket/trunk/backend/allegro.lisp usocket/trunk/backend/armedbear.lisp usocket/trunk/backend/clisp.lisp usocket/trunk/backend/lispworks.lisp usocket/trunk/backend/openmcl.lisp usocket/trunk/backend/sbcl.lisp usocket/trunk/usocket.lisp Log: Define datagram-usocket-p; ArmedBear depends on it. Modified: usocket/trunk/backend/allegro.lisp ============================================================================== --- usocket/trunk/backend/allegro.lisp (original) +++ usocket/trunk/backend/allegro.lisp Mon Sep 17 14:59:29 2007 @@ -89,7 +89,9 @@ (defmethod socket-accept ((socket stream-server-usocket) &key element-type) (declare (ignore element-type)) ;; allegro streams are multivalent - (let ((stream-sock (socket:accept-connection (socket socket)))) + (let ((stream-sock + (with-mapped-conditions (socket) + (socket:accept-connection (socket socket))))) (make-stream-socket :socket stream-sock :stream stream-sock))) (defmethod get-local-address ((usocket usocket)) Modified: usocket/trunk/backend/armedbear.lisp ============================================================================== --- usocket/trunk/backend/armedbear.lisp (original) +++ usocket/trunk/backend/armedbear.lisp Mon Sep 17 14:59:29 2007 @@ -216,19 +216,22 @@ "open")) (sock (jdi:do-jmethod-call chan "socket"))) (when reuseaddress + (with-mapped-conditions () + (jdi:do-jmethod-call sock + "setReuseAddress" + (jdi:jcoerce reuseaddress :boolean)))) + (with-mapped-conditions () (jdi:do-jmethod-call sock - "setReuseAddress" - (jdi:jcoerce reuseaddress :boolean))) - (jdi:do-jmethod-call sock - "bind" - (jdi:jcoerce sock-addr - "java.net.SocketAddress") - (jdi:jcoerce backlog :int)) + "bind" + (jdi:jcoerce sock-addr + "java.net.SocketAddress") + (jdi:jcoerce backlog :int))) (make-stream-server-socket chan :element-type element-type))) (defmethod socket-accept ((socket stream-server-usocket) &key element-type) (let* ((jsock (socket socket)) - (jacc-chan (jdi:do-jmethod-call jsock "accept")) + (jacc-chan (with-mapped-conditions (socket) + (jdi:do-jmethod-call jsock "accept"))) (jacc-stream (ext:get-socket-stream (jdi:jop-deref (jdi:do-jmethod-call jacc-chan "socket")) @@ -243,7 +246,7 @@ (defmethod socket-close ((usocket usocket)) (with-mapped-conditions (usocket) - (jdi:do-method (socket usocket) "close"))) + (jdi:do-jmethod (socket usocket) "close"))) ;; Socket streams are different objects than ;; socket streams. Closing the stream flushes Modified: usocket/trunk/backend/clisp.lisp ============================================================================== --- usocket/trunk/backend/clisp.lisp (original) +++ usocket/trunk/backend/clisp.lisp Mon Sep 17 14:59:29 2007 @@ -81,13 +81,15 @@ :backlog backlog) (when (ip/= host *wildcard-host*) (list :interface host)))))) - (make-stream-server-socket sock :element-type element-type))) + (with-mapped-conditions () + (make-stream-server-socket sock :element-type element-type)))) (defmethod socket-accept ((socket stream-server-usocket) &key element-type) (let ((stream - (socket:socket-accept (socket socket) - :element-type (or element-type - (element-type socket))))) + (with-mapped-conditions (socket) + (socket:socket-accept (socket socket) + :element-type (or element-type + (element-type socket)))))) (make-stream-socket :socket stream :stream stream))) Modified: usocket/trunk/backend/lispworks.lisp ============================================================================== --- usocket/trunk/backend/lispworks.lisp (original) +++ usocket/trunk/backend/lispworks.lisp Mon Sep 17 14:59:29 2007 @@ -88,7 +88,8 @@ (make-stream-server-socket sock :element-type element-type))) (defmethod socket-accept ((usocket stream-server-usocket) &key element-type) - (let* ((sock (comm::get-fd-from-socket (socket usocket))) + (let* ((sock (with-mapped-conditions (usocket) + (comm::get-fd-from-socket (socket usocket)))) (stream (make-instance 'comm:socket-stream :socket sock :direction :io Modified: usocket/trunk/backend/openmcl.lisp ============================================================================== --- usocket/trunk/backend/openmcl.lisp (original) +++ usocket/trunk/backend/openmcl.lisp Mon Sep 17 14:59:29 2007 @@ -94,19 +94,21 @@ (backlog 5) (element-type 'character)) (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) - (sock (apply #'openmcl-socket:make-socket - (append (list :connect :passive - :reuse-address reuseaddress - :local-port port - :backlog backlog - :format (to-format element-type)) - (when (ip/= host *wildcard-host*) - (list :local-host host)))))) + (sock (with-mapped-conditions () + (apply #'openmcl-socket:make-socket + (append (list :connect :passive + :reuse-address reuseaddress + :local-port port + :backlog backlog + :format (to-format element-type)) + (when (ip/= host *wildcard-host*) + (list :local-host host))))))) (make-stream-server-socket sock :element-type element-type))) (defmethod socket-accept ((usocket stream-server-usocket) &key element-type) (declare (ignore element-type)) ;; openmcl streams are bi/multivalent - (let ((sock (openmcl-socket:accept-connection (socket usocket)))) + (let ((sock (with-mapped-conditions (usocket) + (openmcl-socket:accept-connection (socket usocket))))) (make-stream-socket :socket sock :stream sock))) ;; One close method is sufficient because sockets Modified: usocket/trunk/backend/sbcl.lisp ============================================================================== --- usocket/trunk/backend/sbcl.lisp (original) +++ usocket/trunk/backend/sbcl.lisp Mon Sep 17 14:59:29 2007 @@ -207,18 +207,22 @@ (ip (host-to-vector-quad host)) (sock (make-instance 'sb-bsd-sockets:inet-socket :type :stream :protocol :tcp))) - (setf (sb-bsd-sockets:sockopt-reuse-address sock) reuseaddress) - (sb-bsd-sockets:socket-bind sock ip port) - (sb-bsd-sockets:socket-listen sock backlog) - (make-stream-server-socket sock :element-type element-type))) + (with-mapped-conditions () + (setf (sb-bsd-sockets:sockopt-reuse-address sock) reuseaddress) + (sb-bsd-sockets:socket-bind sock ip port) + (sb-bsd-sockets:socket-listen sock backlog) + (make-stream-server-socket sock :element-type element-type)))) (defmethod socket-accept ((socket stream-server-usocket) &key element-type) (let ((sock (sb-bsd-sockets:socket-accept (socket socket)))) - (make-stream-socket :socket sock - :stream (sb-bsd-sockets:socket-make-stream sock - :input t :output t :buffering :full - :element-type (or element-type - (element-type socket)))))) + (with-mapped-conditions (socket) + (make-stream-socket + :socket sock + :stream (sb-bsd-sockets:socket-make-stream + sock + :input t :output t :buffering :full + :element-type (or element-type + (element-type socket))))))) ;; Sockets and their associated streams are modelled as ;; different objects. Be sure to close the stream (which Modified: usocket/trunk/usocket.lisp ============================================================================== --- usocket/trunk/usocket.lisp (original) +++ usocket/trunk/usocket.lisp Mon Sep 17 14:59:29 2007 @@ -58,6 +58,10 @@ (defun stream-server-usocket-p (socket) (typep socket 'stream-server-usocket)) +(defun datagram-usocket-p (socket) + (declare (ignore socket)) + nil) + ;;Not in use yet: ;;(defclass datagram-usocket (usocket) ;; () From ehuelsmann at common-lisp.net Mon Sep 17 19:03:49 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 15:03:49 -0400 (EDT) Subject: [usocket-cvs] r288 - svn:log Message-ID: <20070917190349.8506143224@common-lisp.net> Author: ehuelsmann Revision: 288 Property Name: svn:log New Property Value: Define datagram-usocket-p; ArmedBear depends on it. Catch implementation defined errors to transform them to usocket errors whenever possible. From ehuelsmann at common-lisp.net Mon Sep 17 19:09:50 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 15:09:50 -0400 (EDT) Subject: [usocket-cvs] r289 - usocket/trunk/backend Message-ID: <20070917190950.E053470E4@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 15:09:50 2007 New Revision: 289 Modified: usocket/trunk/backend/clisp.lisp Log: Fix CLISP error: *Dont* resolve the hostname. Reported by Chandler Escude (chandler at reduct dash intact dot org). " Modified: usocket/trunk/backend/clisp.lisp ============================================================================== --- usocket/trunk/backend/clisp.lisp (original) +++ usocket/trunk/backend/clisp.lisp Mon Sep 17 15:09:50 2007 @@ -107,13 +107,13 @@ (defmethod get-local-name ((usocket usocket)) (multiple-value-bind (address port) - (socket:socket-stream-local (socket usocket) nil) + (socket:socket-stream-local (socket usocket) t) (values (dotted-quad-to-vector-quad address) port))) (defmethod get-peer-name ((usocket stream-usocket)) (multiple-value-bind (address port) - (socket:socket-stream-peer (socket usocket) nil) + (socket:socket-stream-peer (socket usocket) t) (values (dotted-quad-to-vector-quad address) port))) (defmethod get-local-address ((usocket usocket)) From ehuelsmann at common-lisp.net Mon Sep 17 19:15:07 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 15:15:07 -0400 (EDT) Subject: [usocket-cvs] r290 - usocket/branches/0.3.x/backend Message-ID: <20070917191507.9F322A14E@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 15:15:07 2007 New Revision: 290 Modified: usocket/branches/0.3.x/backend/clisp.lisp Log: Merge r289 from trunk (clisp breakage with get-local-name/get-peer-name). Modified: usocket/branches/0.3.x/backend/clisp.lisp ============================================================================== --- usocket/branches/0.3.x/backend/clisp.lisp (original) +++ usocket/branches/0.3.x/backend/clisp.lisp Mon Sep 17 15:15:07 2007 @@ -103,13 +103,13 @@ (defmethod get-local-name ((usocket usocket)) (multiple-value-bind (address port) - (socket:socket-stream-local (socket usocket) nil) + (socket:socket-stream-local (socket usocket) t) (values (dotted-quad-to-vector-quad address) port))) (defmethod get-peer-name ((usocket stream-usocket)) (multiple-value-bind (address port) - (socket:socket-stream-peer (socket usocket) nil) + (socket:socket-stream-peer (socket usocket) t) (values (dotted-quad-to-vector-quad address) port))) (defmethod get-local-address ((usocket usocket)) From ehuelsmann at common-lisp.net Mon Sep 17 19:22:43 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 15:22:43 -0400 (EDT) Subject: [usocket-cvs] r291 - usocket/trunk/backend Message-ID: <20070917192243.3DD002806C@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 15:22:43 2007 New Revision: 291 Modified: usocket/trunk/backend/cmucl.lisp Log: Fix CMUCL leaked internal errors (cmucl version of r289). Modified: usocket/trunk/backend/cmucl.lisp ============================================================================== --- usocket/trunk/backend/cmucl.lisp (original) +++ usocket/trunk/backend/cmucl.lisp Mon Sep 17 15:22:43 2007 @@ -76,22 +76,25 @@ (backlog 5) (element-type 'character)) (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) - (server-sock (apply #'ext:create-inet-listener - (append (list port :stream - :backlog backlog - :reuse-address reuseaddress) - (when (ip/= host *wildcard-host*) - (list :host - (host-to-hbo host))))))) + (server-sock + (with-mapped-conditions () + (apply #'ext:create-inet-listener + (append (list port :stream + :backlog backlog + :reuse-address reuseaddress) + (when (ip/= host *wildcard-host*) + (list :host + (host-to-hbo host)))))))) (make-stream-server-socket server-sock :element-type element-type))) (defmethod socket-accept ((usocket stream-server-usocket) &key element-type) - (let* ((sock (ext:accept-tcp-connection (socket usocket))) - (stream (sys:make-fd-stream sock :input t :output t - :element-type (or element-type - (element-type usocket)) - :buffering :full))) - (make-stream-socket :socket sock :stream stream))) + (with-mapped-conditions (usocket) + (let* ((sock (ext:accept-tcp-connection (socket usocket))) + (stream (sys:make-fd-stream sock :input t :output t + :element-type (or element-type + (element-type usocket)) + :buffering :full))) + (make-stream-socket :socket sock :stream stream)))) ;; Sockets and socket streams are represented ;; by different objects. Be sure to close the From ehuelsmann at common-lisp.net Mon Sep 17 19:25:35 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 15:25:35 -0400 (EDT) Subject: [usocket-cvs] r292 - usocket/trunk/backend Message-ID: <20070917192535.187BB450C9@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 15:25:34 2007 New Revision: 292 Modified: usocket/trunk/backend/sbcl.lisp Log: Expand SBCL with-mapped-conditions binding to close over sb-bsd-sockets:accept call. Modified: usocket/trunk/backend/sbcl.lisp ============================================================================== --- usocket/trunk/backend/sbcl.lisp (original) +++ usocket/trunk/backend/sbcl.lisp Mon Sep 17 15:25:34 2007 @@ -214,8 +214,8 @@ (make-stream-server-socket sock :element-type element-type)))) (defmethod socket-accept ((socket stream-server-usocket) &key element-type) - (let ((sock (sb-bsd-sockets:socket-accept (socket socket)))) - (with-mapped-conditions (socket) + (with-mapped-conditions (socket) + (let ((sock (sb-bsd-sockets:socket-accept (socket socket)))) (make-stream-socket :socket sock :stream (sb-bsd-sockets:socket-make-stream From ehuelsmann at common-lisp.net Mon Sep 17 19:41:59 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 15:41:59 -0400 (EDT) Subject: [usocket-cvs] r293 - usocket/trunk/backend Message-ID: <20070917194159.EC52C43221@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 15:41:59 2007 New Revision: 293 Modified: usocket/trunk/backend/scl.lisp Log: r289 followup for Scieneer. Modified: usocket/trunk/backend/scl.lisp ============================================================================== --- usocket/trunk/backend/scl.lisp (original) +++ usocket/trunk/backend/scl.lisp Mon Sep 17 15:41:59 2007 @@ -50,19 +50,22 @@ (host (if (ip= host *wildcard-host*) 0 (host-to-hbo host))) - (server-sock (ext:create-inet-listener port :stream - :host host - :reuse-address reuseaddress - :backlog backlog))) + (server-sock + (with-mapped-conditions () + (ext:create-inet-listener port :stream + :host host + :reuse-address reuseaddress + :backlog backlog)))) (make-stream-server-socket server-sock :element-type element-type))) (defmethod socket-accept ((usocket stream-server-usocket) &key element-type) - (let* ((sock (ext:accept-tcp-connection (socket usocket))) - (stream (sys:make-fd-stream sock :input t :output t - :element-type (or element-type - (element-type usocket)) - :buffering :full))) - (make-stream-socket :socket sock :stream stream))) + (with-mapped-conditions (usocket) + (let* ((sock (ext:accept-tcp-connection (socket usocket))) + (stream (sys:make-fd-stream sock :input t :output t + :element-type (or element-type + (element-type usocket)) + :buffering :full))) + (make-stream-socket :socket sock :stream stream)))) ;; Sockets and their associated streams are modelled as ;; different objects. Be sure to close the socket stream From ehuelsmann at common-lisp.net Mon Sep 17 19:50:34 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 15:50:34 -0400 (EDT) Subject: [usocket-cvs] r294 - usocket/branches/0.3.x/backend Message-ID: <20070917195034.DF8C04814C@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 15:50:34 2007 New Revision: 294 Modified: usocket/branches/0.3.x/backend/allegro.lisp usocket/branches/0.3.x/backend/armedbear.lisp usocket/branches/0.3.x/backend/clisp.lisp usocket/branches/0.3.x/backend/cmucl.lisp usocket/branches/0.3.x/backend/lispworks.lisp usocket/branches/0.3.x/backend/openmcl.lisp usocket/branches/0.3.x/backend/sbcl.lisp usocket/branches/0.3.x/backend/scl.lisp Log: Manual backport of r288 from trunk. Modified: usocket/branches/0.3.x/backend/allegro.lisp ============================================================================== --- usocket/branches/0.3.x/backend/allegro.lisp (original) +++ usocket/branches/0.3.x/backend/allegro.lisp Mon Sep 17 15:50:34 2007 @@ -87,7 +87,8 @@ (defmethod socket-accept ((socket stream-server-usocket) &key element-type) (declare (ignore element-type)) ;; allegro streams are multivalent - (let ((stream-sock (socket:accept-connection (socket socket)))) + (let ((stream-sock (with-mapped-conditions () + (socket:accept-connection (socket socket))))) (make-stream-socket :socket stream-sock :stream stream-sock))) (defmethod get-local-address ((usocket usocket)) Modified: usocket/branches/0.3.x/backend/armedbear.lisp ============================================================================== --- usocket/branches/0.3.x/backend/armedbear.lisp (original) +++ usocket/branches/0.3.x/backend/armedbear.lisp Mon Sep 17 15:50:34 2007 @@ -50,17 +50,20 @@ (host-to-hostname host) port)) (sock (jnew-call ("java.net.ServerSocket")))) (when reuseaddress + (with-mapped-conditions () + (jmethod-call sock + ("setReuseAddress" "boolean") + (java:make-immediate-object reuseaddress :boolean)))) + (with-mapped-conditions () (jmethod-call sock - ("setReuseAddress" "boolean") - (java:make-immediate-object reuseaddress :boolean))) - (jmethod-call sock - ("bind" "java.net.SocketAddress" "int") - sock-addr backlog) + ("bind" "java.net.SocketAddress" "int") + sock-addr backlog)) (make-stream-server-socket sock :element-type element-type))) (defmethod socket-accept ((socket stream-server-usocket) &key element-type) (let* ((jsock (socket socket)) - (jacc-sock (jmethod-call jsock ("accept"))) + (jacc-sock (with-mapped-conditions (socket) + (jmethod-call jsock ("accept"))) (jacc-stream (ext:get-socket-stream jacc-sock :element-type (or element-type Modified: usocket/branches/0.3.x/backend/clisp.lisp ============================================================================== --- usocket/branches/0.3.x/backend/clisp.lisp (original) +++ usocket/branches/0.3.x/backend/clisp.lisp Mon Sep 17 15:50:34 2007 @@ -74,18 +74,20 @@ ;; clisp 2.39 sets SO_REUSEADDRESS to 1 by default; no need to ;; to explicitly turn it on; unfortunately, there's no way to turn it off... (declare (ignore reuseaddress reuse-address)) - (let ((sock (apply #'socket:socket-server - (append (list port - :backlog backlog) - (when (ip/= host *wildcard-host*) - (list :interface host)))))) + (let ((sock (with-mapped-conditions () + (apply #'socket:socket-server + (append (list port + :backlog backlog) + (when (ip/= host *wildcard-host*) + (list :interface host))))))) (make-stream-server-socket sock :element-type element-type))) (defmethod socket-accept ((socket stream-server-usocket) &key element-type) (let ((stream - (socket:socket-accept (socket socket) - :element-type (or element-type - (element-type socket))))) + (with-mapped-conditions (socket) + (socket:socket-accept (socket socket) + :element-type (or element-type + (element-type socket)))))) (make-stream-socket :socket stream :stream stream))) Modified: usocket/branches/0.3.x/backend/cmucl.lisp ============================================================================== --- usocket/branches/0.3.x/backend/cmucl.lisp (original) +++ usocket/branches/0.3.x/backend/cmucl.lisp Mon Sep 17 15:50:34 2007 @@ -76,22 +76,25 @@ (backlog 5) (element-type 'character)) (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) - (server-sock (apply #'ext:create-inet-listener - (append (list port :stream - :backlog backlog - :reuse-address reuseaddress) - (when (ip/= host *wildcard-host*) - (list :host - (host-to-hbo host))))))) + (server-sock + (with-mapped-conditions () + (apply #'ext:create-inet-listener + (append (list port :stream + :backlog backlog + :reuse-address reuseaddress) + (when (ip/= host *wildcard-host*) + (list :host + (host-to-hbo host)))))))) (make-stream-server-socket server-sock :element-type element-type))) (defmethod socket-accept ((usocket stream-server-usocket) &key element-type) - (let* ((sock (ext:accept-tcp-connection (socket usocket))) - (stream (sys:make-fd-stream sock :input t :output t - :element-type (or element-type - (element-type usocket)) - :buffering :full))) - (make-stream-socket :socket sock :stream stream))) + (with-mapped-conditions (usocket) + (let* ((sock (ext:accept-tcp-connection (socket usocket))) + (stream (sys:make-fd-stream sock :input t :output t + :element-type (or element-type + (element-type usocket)) + :buffering :full))) + (make-stream-socket :socket sock :stream stream)))) ;; Sockets and socket streams are represented ;; by different objects. Be sure to close the Modified: usocket/branches/0.3.x/backend/lispworks.lisp ============================================================================== --- usocket/branches/0.3.x/backend/lispworks.lisp (original) +++ usocket/branches/0.3.x/backend/lispworks.lisp Mon Sep 17 15:50:34 2007 @@ -87,7 +87,8 @@ (make-stream-server-socket sock :element-type element-type))) (defmethod socket-accept ((usocket stream-server-usocket) &key element-type) - (let* ((sock (comm::get-fd-from-socket (socket usocket))) + (let* ((sock (with-mapped-conditions (usocket) + (comm::get-fd-from-socket (socket usocket)))) (stream (make-instance 'comm:socket-stream :socket sock :direction :io Modified: usocket/branches/0.3.x/backend/openmcl.lisp ============================================================================== --- usocket/branches/0.3.x/backend/openmcl.lisp (original) +++ usocket/branches/0.3.x/backend/openmcl.lisp Mon Sep 17 15:50:34 2007 @@ -92,19 +92,21 @@ (backlog 5) (element-type 'character)) (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) - (sock (apply #'openmcl-socket:make-socket - (append (list :connect :passive - :reuse-address reuseaddress - :local-port port - :backlog backlog - :format (to-format element-type)) - (when (ip/= host *wildcard-host*) - (list :local-host host)))))) + (sock (with-mapped-conditions () + (apply #'openmcl-socket:make-socket + (append (list :connect :passive + :reuse-address reuseaddress + :local-port port + :backlog backlog + :format (to-format element-type)) + (when (ip/= host *wildcard-host*) + (list :local-host host))))))) (make-stream-server-socket sock :element-type element-type))) (defmethod socket-accept ((usocket stream-server-usocket) &key element-type) (declare (ignore element-type)) ;; openmcl streams are bi/multivalent - (let ((sock (openmcl-socket:accept-connection (socket usocket)))) + (let ((sock (with-mapped-conditions (usocket) + (openmcl-socket:accept-connection (socket usocket))))) (make-stream-socket :socket sock :stream sock))) ;; One close method is sufficient because sockets Modified: usocket/branches/0.3.x/backend/sbcl.lisp ============================================================================== --- usocket/branches/0.3.x/backend/sbcl.lisp (original) +++ usocket/branches/0.3.x/backend/sbcl.lisp Mon Sep 17 15:50:34 2007 @@ -136,18 +136,22 @@ (ip (host-to-vector-quad host)) (sock (make-instance 'sb-bsd-sockets:inet-socket :type :stream :protocol :tcp))) - (setf (sb-bsd-sockets:sockopt-reuse-address sock) reuseaddress) - (sb-bsd-sockets:socket-bind sock ip port) - (sb-bsd-sockets:socket-listen sock backlog) - (make-stream-server-socket sock :element-type element-type))) + (with-mapped-conditions () + (setf (sb-bsd-sockets:sockopt-reuse-address sock) reuseaddress) + (sb-bsd-sockets:socket-bind sock ip port) + (sb-bsd-sockets:socket-listen sock backlog) + (make-stream-server-socket sock :element-type element-type)))) (defmethod socket-accept ((socket stream-server-usocket) &key element-type) - (let ((sock (sb-bsd-sockets:socket-accept (socket socket)))) - (make-stream-socket :socket sock - :stream (sb-bsd-sockets:socket-make-stream sock - :input t :output t :buffering :full - :element-type (or element-type - (element-type socket)))))) + (with-mapped-conditions (socket) + (let ((sock (sb-bsd-sockets:socket-accept (socket socket)))) + (make-stream-socket + :socket sock + :stream (sb-bsd-sockets:socket-make-stream + sock + :input t :output t :buffering :full + :element-type (or element-type + (element-type socket))))))) ;; Sockets and their associated streams are modelled as ;; different objects. Be sure to close the stream (which Modified: usocket/branches/0.3.x/backend/scl.lisp ============================================================================== --- usocket/branches/0.3.x/backend/scl.lisp (original) +++ usocket/branches/0.3.x/backend/scl.lisp Mon Sep 17 15:50:34 2007 @@ -50,19 +50,22 @@ (host (if (ip= host *wildcard-host*) 0 (host-to-hbo host))) - (server-sock (ext:create-inet-listener port :stream - :host host - :reuse-address reuseaddress - :backlog backlog))) + (server-sock + (with-mapped-conditions () + (ext:create-inet-listener port :stream + :host host + :reuse-address reuseaddress + :backlog backlog)))) (make-stream-server-socket server-sock :element-type element-type))) (defmethod socket-accept ((usocket stream-server-usocket) &key element-type) - (let* ((sock (ext:accept-tcp-connection (socket usocket))) - (stream (sys:make-fd-stream sock :input t :output t - :element-type (or element-type - (element-type usocket)) - :buffering :full))) - (make-stream-socket :socket sock :stream stream))) + (with-mapped-conditions (usocket) + (let* ((sock (ext:accept-tcp-connection (socket usocket))) + (stream (sys:make-fd-stream sock :input t :output t + :element-type (or element-type + (element-type usocket)) + :buffering :full))) + (make-stream-socket :socket sock :stream stream)))) ;; Sockets and their associated streams are modelled as ;; different objects. Be sure to close the socket stream From ehuelsmann at common-lisp.net Mon Sep 17 19:53:15 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 15:53:15 -0400 (EDT) Subject: [usocket-cvs] r295 - usocket/branches/0.3.x/backend Message-ID: <20070917195315.B98F1490AD@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 15:53:12 2007 New Revision: 295 Modified: usocket/branches/0.3.x/backend/armedbear.lisp Log: Follow up to r294: match parens. Modified: usocket/branches/0.3.x/backend/armedbear.lisp ============================================================================== --- usocket/branches/0.3.x/backend/armedbear.lisp (original) +++ usocket/branches/0.3.x/backend/armedbear.lisp Mon Sep 17 15:53:12 2007 @@ -63,7 +63,7 @@ (defmethod socket-accept ((socket stream-server-usocket) &key element-type) (let* ((jsock (socket socket)) (jacc-sock (with-mapped-conditions (socket) - (jmethod-call jsock ("accept"))) + (jmethod-call jsock ("accept")))) (jacc-stream (ext:get-socket-stream jacc-sock :element-type (or element-type From ehuelsmann at common-lisp.net Mon Sep 17 20:14:43 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 16:14:43 -0400 (EDT) Subject: [usocket-cvs] r296 - usocket/branches/0.3.x/backend Message-ID: <20070917201443.D19FC2F061@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 16:14:43 2007 New Revision: 296 Modified: usocket/branches/0.3.x/backend/clisp.lisp Log: Backport r287: clisp language specifier and ignored variable. Modified: usocket/branches/0.3.x/backend/clisp.lisp ============================================================================== --- usocket/branches/0.3.x/backend/clisp.lisp (original) +++ usocket/branches/0.3.x/backend/clisp.lisp Mon Sep 17 16:14:43 2007 @@ -13,6 +13,8 @@ :OUT :ALLOCA) (len ffi:int)) #+win32 (:library "WS2_32") + (:language #-win32 :stdc + #+win32 :stdc-stdcall) (:return-type ffi:int)) @@ -73,7 +75,7 @@ (element-type 'character)) ;; clisp 2.39 sets SO_REUSEADDRESS to 1 by default; no need to ;; to explicitly turn it on; unfortunately, there's no way to turn it off... - (declare (ignore reuseaddress reuse-address)) + (declare (ignore reuseaddress reuse-address reuse-address-supplied-p)) (let ((sock (with-mapped-conditions () (apply #'socket:socket-server (append (list port From ehuelsmann at common-lisp.net Mon Sep 17 20:25:40 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 16:25:40 -0400 (EDT) Subject: [usocket-cvs] r297 - usocket/branches/0.3.x/backend Message-ID: <20070917202540.8B4461903A@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 16:25:40 2007 New Revision: 297 Modified: usocket/branches/0.3.x/backend/sbcl.lisp Log: Backport r286: SBCL/ECL fixes. Modified: usocket/branches/0.3.x/backend/sbcl.lisp ============================================================================== --- usocket/branches/0.3.x/backend/sbcl.lisp (original) +++ usocket/branches/0.3.x/backend/sbcl.lisp Mon Sep 17 16:25:40 2007 @@ -32,7 +32,7 @@ (sb-alien:cast buf (* sb-alien:char)) 256))) (when (= result 0) - (cast buf sb-alien:c-string)))))) + (sb-alien:cast buf sb-alien:c-string)))))) #+ecl @@ -49,10 +49,9 @@ (defun get-host-name () (ffi:c-inline () () :object - "{ char buf[256]; - int = gethostname(&buf,256); + "{ char *buf = GC_malloc(257); - if (r == 0) + if (gethostname(buf,256) == 0) @(return) = make_simple_base_string(strndup(&buf,255)); else @(return) = Cnil; From ehuelsmann at common-lisp.net Mon Sep 17 22:08:27 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 18:08:27 -0400 (EDT) Subject: [usocket-cvs] r298 - usocket/tags/0.3.5 Message-ID: <20070917220827.0F1ED50029@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 18:08:26 2007 New Revision: 298 Added: usocket/tags/0.3.5/ (props changed) - copied from r297, usocket/branches/0.3.x/ Modified: usocket/tags/0.3.5/usocket.asd Log: Create 0.3.5 tag. Modified: usocket/tags/0.3.5/usocket.asd ============================================================================== --- usocket/branches/0.3.x/usocket.asd (original) +++ usocket/tags/0.3.5/usocket.asd Mon Sep 17 18:08:26 2007 @@ -14,7 +14,7 @@ (defsystem usocket :name "usocket" :author "Erik Enge & Erik Huelsmann" - :version "0.3.5-dev" + :version "0.3.5" :licence "MIT" :description "Universal socket library for Common Lisp" :depends-on (:split-sequence From ehuelsmann at common-lisp.net Mon Sep 17 22:14:04 2007 From: ehuelsmann at common-lisp.net (ehuelsmann at common-lisp.net) Date: Mon, 17 Sep 2007 18:14:04 -0400 (EDT) Subject: [usocket-cvs] r299 - in public_html: . releases Message-ID: <20070917221404.854E150029@common-lisp.net> Author: ehuelsmann Date: Mon Sep 17 18:14:03 2007 New Revision: 299 Added: public_html/releases/usocket-0.3.5.tar.gz (contents, props changed) public_html/releases/usocket-0.3.5.tar.gz.asc Modified: public_html/index.shtml Log: Publish version 0.3.5. Modified: public_html/index.shtml ============================================================================== --- public_html/index.shtml (original) +++ public_html/index.shtml Mon Sep 17 18:14:03 2007 @@ -391,6 +391,12 @@ + + + Added: public_html/releases/usocket-0.3.5.tar.gz ============================================================================== Binary file. No diff available. Added: public_html/releases/usocket-0.3.5.tar.gz.asc ============================================================================== --- (empty file) +++ public_html/releases/usocket-0.3.5.tar.gz.asc Mon Sep 17 18:14:03 2007 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.6 (GNU/Linux) + +iD8DBQBG7vxFi5O0Epaz9TkRAj0IAJ4zHXuiT5Avv1KNS7a5+OUiYlDIzwCggOCe +RWhxbCYJk2Y4OpT+qOP1XTg= +=VRNO +-----END PGP SIGNATURE-----
Release history
DateReleaseSummary
Sep 18, 20070.3.5Implementation-dependent errors bleeding through, ECL get-host-name + memory allocation fix/win32 compat fix, CLISP compile warnings fixes, + SBCL compile warning/error fix, CLISP get-peer-name/get-local-name + fixes
Jul 25, 2007 0.3.4 Fix clisp get-host-name, multiple ECL fixes.