Author: ehuelsmann Date: Tue Apr 3 16:22:47 2007 New Revision: 223
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 (contents, props changed) usocket/branches/0.3.x/usocket.lisp Log: Merge r220-222 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 Tue Apr 3 16:22:47 2007 @@ -60,11 +60,13 @@
(defun socket-listen (host port &key reuseaddress + (reuse-address nil reuse-address-supplied-p) (backlog 5) (element-type 'character)) ;; Allegro and OpenMCL socket interfaces bear very strong resemblence ;; whatever you change here, change it also for OpenMCL - (let ((sock (with-mapped-conditions () + (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) + (sock (with-mapped-conditions () (apply #'socket:make-socket (append (list :connect :passive :reuse-address reuseaddress @@ -85,20 +87,20 @@ (defmethod get-local-address ((usocket usocket)) (hbo-to-vector-quad (socket:local-host (socket usocket))))
-(defmethod get-peer-address ((usocket stream-server-usocket)) +(defmethod get-peer-address ((usocket stream-usocket)) (hbo-to-vector-quad (socket:remote-host (socket usocket))))
(defmethod get-local-port ((usocket usocket)) (socket:local-port (socket usocket)))
-(defmethod get-peer-port ((usocket stream-server-usocket)) +(defmethod get-peer-port ((usocket stream-usocket)) (socket:remote-port (socket usocket)))
(defmethod get-local-name ((usocket usocket)) (values (get-local-address usocket) (get-local-port usocket)))
-(defmethod get-peer-name ((usocket stream-server-usocket)) +(defmethod get-peer-name ((usocket stream-usocket)) (values (get-peer-address usocket) (get-peer-port 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 Tue Apr 3 16:22:47 2007 @@ -33,9 +33,11 @@
(defun socket-listen (host port &key reuseaddress + (reuse-address nil reuse-address-supplied-p) (backlog 5) (element-type 'character)) - (let* ((sock-addr (jnew-call ("java.net.InetSocketAddress" + (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) + (sock-addr (jnew-call ("java.net.InetSocketAddress" "java.lang.String" "int") (host-to-hostname host) port)) (sock (jnew-call ("java.net.ServerSocket"))))
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 Tue Apr 3 16:22:47 2007 @@ -51,11 +51,13 @@
(defun socket-listen (host port &key reuseaddress + (reuse-address nil reuse-address-supplied-p) (backlog 5) (element-type 'character)) ;; clisp 2.39 sets SO_REUSEADDRESS to 1 by default; no need to - ;; to explicitly turn it on. - (let ((sock (apply #'socket:socket-server + ;; 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*) @@ -87,7 +89,7 @@ (socket:socket-stream-local (socket usocket) nil) (values (dotted-quad-to-vector-quad address) port)))
-(defmethod get-peer-name ((usocket usocket)) +(defmethod get-peer-name ((usocket stream-usocket)) (multiple-value-bind (address port) (socket:socket-stream-peer (socket usocket) nil) @@ -96,12 +98,12 @@ (defmethod get-local-address ((usocket usocket)) (nth-value 0 (get-local-name usocket)))
-(defmethod get-peer-address ((usocket usocket)) +(defmethod get-peer-address ((usocket stream-usocket)) (nth-value 0 (get-peer-name usocket)))
(defmethod get-local-port ((usocket usocket)) (nth-value 1 (get-local-name usocket)))
-(defmethod get-peer-port ((usocket usocket)) +(defmethod get-peer-port ((usocket stream-usocket)) (nth-value 1 (get-peer-name usocket)))
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 Tue Apr 3 16:22:47 2007 @@ -72,15 +72,17 @@
(defun socket-listen (host port &key reuseaddress + (reuse-address nil reuse-address-supplied-p) (backlog 5) (element-type 'character)) - (let ((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))))))) + (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))))))) (make-stream-server-socket server-sock :element-type element-type)))
(defmethod socket-accept ((usocket stream-server-usocket) &key element-type) @@ -110,7 +112,7 @@ (ext:get-socket-host-and-port (socket usocket)) (values (hbo-to-vector-quad address) port)))
-(defmethod get-peer-name ((usocket usocket)) +(defmethod get-peer-name ((usocket stream-usocket)) (multiple-value-bind (address port) (ext:get-peer-host-and-port (socket usocket)) @@ -119,13 +121,13 @@ (defmethod get-local-address ((usocket usocket)) (nth-value 0 (get-local-name usocket)))
-(defmethod get-peer-address ((usocket usocket)) +(defmethod get-peer-address ((usocket stream-usocket)) (nth-value 0 (get-peer-name usocket)))
(defmethod get-local-port ((usocket usocket)) (nth-value 1 (get-local-name usocket)))
-(defmethod get-peer-port ((usocket usocket)) +(defmethod get-peer-port ((usocket stream-usocket)) (nth-value 1 (get-peer-name usocket)))
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 Tue Apr 3 16:22:47 2007 @@ -58,9 +58,11 @@
(defun socket-listen (host port &key reuseaddress + (reuse-address nil reuse-address-supplied-p) (backlog 5) (element-type 'base-char)) - (let* ((comm::*use_so_reuseaddr* reuseaddress) + (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) + (comm::*use_so_reuseaddr* reuseaddress) (hostname (host-to-hostname host)) (sock (with-mapped-conditions () #-lispworks4.1 (comm::create-tcp-socket-for-service @@ -94,7 +96,7 @@ (comm:get-socket-address (socket usocket)) (values (hbo-to-vector-quad address) port)))
-(defmethod get-peer-name ((usocket usocket)) +(defmethod get-peer-name ((usocket stream-usocket)) (multiple-value-bind (address port) (comm:get-socket-peer-address (socket usocket)) @@ -103,13 +105,13 @@ (defmethod get-local-address ((usocket usocket)) (nth-value 0 (get-local-name usocket)))
-(defmethod get-peer-address ((usocket usocket)) +(defmethod get-peer-address ((usocket stream-usocket)) (nth-value 0 (get-peer-name usocket)))
(defmethod get-local-port ((usocket usocket)) (nth-value 1 (get-local-name usocket)))
-(defmethod get-peer-port ((usocket usocket)) +(defmethod get-peer-port ((usocket stream-usocket)) (nth-value 1 (get-peer-name usocket)))
(defun get-hosts-by-name (name)
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 Tue Apr 3 16:22:47 2007 @@ -56,9 +56,11 @@
(defun socket-listen (host port &key reuseaddress + (reuse-address nil reuse-address-supplied-p) (backlog 5) (element-type 'character)) - (let* ((sock (apply #'openmcl-socket:make-socket + (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 @@ -83,20 +85,20 @@ (defmethod get-local-address ((usocket usocket)) (hbo-to-vector-quad (openmcl-socket:local-host (socket usocket))))
-(defmethod get-peer-address ((usocket usocket)) +(defmethod get-peer-address ((usocket stream-usocket)) (hbo-to-vector-quad (openmcl-socket:remote-host (socket usocket))))
(defmethod get-local-port ((usocket usocket)) (openmcl-socket:local-port (socket usocket)))
-(defmethod get-peer-port ((usocket usocket)) +(defmethod get-peer-port ((usocket stream-usocket)) (openmcl-socket:remote-port (socket usocket)))
(defmethod get-local-name ((usocket usocket)) (values (get-local-address usocket) (get-local-port usocket)))
-(defmethod get-peer-name ((usocket usocket)) +(defmethod get-peer-name ((usocket stream-usocket)) (values (get-peer-address usocket) (get-peer-port usocket)))
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 Tue Apr 3 16:22:47 2007 @@ -84,9 +84,11 @@
(defun socket-listen (host port &key reuseaddress + (reuse-address nil reuse-address-supplied-p) (backlog 5) (element-type 'character)) - (let* ((ip (host-to-vector-quad host)) + (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) + (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) @@ -116,19 +118,19 @@ (defmethod get-local-name ((usocket usocket)) (sb-bsd-sockets:socket-name (socket usocket)))
-(defmethod get-peer-name ((usocket usocket)) +(defmethod get-peer-name ((usocket stream-usocket)) (sb-bsd-sockets:socket-peername (socket usocket)))
(defmethod get-local-address ((usocket usocket)) (nth-value 0 (get-local-name usocket)))
-(defmethod get-peer-address ((usocket usocket)) +(defmethod get-peer-address ((usocket stream-usocket)) (nth-value 0 (get-peer-name usocket)))
(defmethod get-local-port ((usocket usocket)) (nth-value 1 (get-local-name usocket)))
-(defmethod get-peer-port ((usocket usocket)) +(defmethod get-peer-port ((usocket stream-usocket)) (nth-value 1 (get-peer-name usocket)))
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 Tue Apr 3 16:22:47 2007 @@ -1,5 +1,5 @@ -;;;; $Id: scl.lisp$ -;;;; $URL: svn://common-lisp.net/project/usocket/svn/usocket/trunk/backend/scl.lisp $ +;;;; $Id$ +;;;; $URL$
;;;; See LICENSE for licensing information.
@@ -43,15 +43,17 @@
(defun socket-listen (host port &key reuseaddress + (reuse-address nil reuse-address-supplied-p) (backlog 5) (element-type 'character)) - (let* ((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))) + (let* ((reuseaddress (if reuse-address-supplied-p reuse-address reuseaddress)) + (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))) (make-stream-server-socket server-sock :element-type element-type)))
(defmethod socket-accept ((usocket stream-server-usocket) &key element-type) @@ -82,7 +84,7 @@ (ext:get-socket-host-and-port (socket usocket))) (values (hbo-to-vector-quad address) port)))
-(defmethod get-peer-name ((usocket usocket)) +(defmethod get-peer-name ((usocket stream-usocket)) (multiple-value-bind (address port) (with-mapped-conditions (usocket) (ext:get-peer-host-and-port (socket usocket))) @@ -91,13 +93,13 @@ (defmethod get-local-address ((usocket usocket)) (nth-value 0 (get-local-name usocket)))
-(defmethod get-peer-address ((usocket usocket)) +(defmethod get-peer-address ((usocket stream-usocket)) (nth-value 0 (get-peer-name usocket)))
(defmethod get-local-port ((usocket usocket)) (nth-value 1 (get-local-name usocket)))
-(defmethod get-peer-port ((usocket usocket)) +(defmethod get-peer-port ((usocket stream-usocket)) (nth-value 1 (get-peer-name usocket)))
Modified: usocket/branches/0.3.x/usocket.lisp ============================================================================== --- usocket/branches/0.3.x/usocket.lisp (original) +++ usocket/branches/0.3.x/usocket.lisp Tue Apr 3 16:22:47 2007 @@ -304,9 +304,11 @@
Returns an object of type `stream-server-usocket'.
-`reuseaddress' and `backlog' are advisory parameters for setting socket +`reuse-address' and `backlog' are advisory parameters for setting socket options at creation time. `element-type' is the element type of the -streams to be created by `socket-accept'. +streams to be created by `socket-accept'. `reuseaddress' is supported for +backward compatibility (but deprecated); when both `reuseaddress' and +`reuse-address' have been specified, the latter takes precedence. ")
;; Documentation for the function