Author: ctian Date: Mon Oct 13 02:05:28 2008 New Revision: 431
Log: [udp] use :datagram instead of :udp, extend HOST-TO-HBO to support NIL
Modified: usocket/branches/experimental-udp/backend/allegro.lisp usocket/branches/experimental-udp/backend/cmucl.lisp usocket/branches/experimental-udp/backend/openmcl.lisp usocket/branches/experimental-udp/backend/sbcl.lisp usocket/branches/experimental-udp/package.lisp usocket/branches/experimental-udp/server.lisp usocket/branches/experimental-udp/usocket.lisp
Modified: usocket/branches/experimental-udp/backend/allegro.lisp ============================================================================== --- usocket/branches/experimental-udp/backend/allegro.lisp (original) +++ usocket/branches/experimental-udp/backend/allegro.lisp Mon Oct 13 02:05:28 2008 @@ -64,7 +64,7 @@ (labels ((make-socket () (socket:make-socket :remote-host (host-to-hostname host) :remote-port port - :local-host (when local-host (host-to-hostname local-host)) + :local-host (host-to-hostname local-host) :local-port local-port :format (to-format element-type) :nodelay nodelay))) @@ -79,13 +79,13 @@ :connect :active :remote-host (host-to-hostname host) :remote-port port - :local-host (when local-host (host-to-hostname local-host)) + :local-host (host-to-hostname local-host) :local-port local-port :format (to-format element-type)) (socket:make-socket :type :datagram :address-family :internet :local-host local-host - :local-port (when local-host (host-to-hostname local-host)) + :local-port (host-to-hostname local-host) :format (to-format element-type))))))) (ecase protocol (:stream
Modified: usocket/branches/experimental-udp/backend/cmucl.lisp ============================================================================== --- usocket/branches/experimental-udp/backend/cmucl.lisp (original) +++ usocket/branches/experimental-udp/backend/cmucl.lisp Mon Oct 13 02:05:28 2008 @@ -67,8 +67,7 @@ (setf socket (with-mapped-conditions (socket) (ext:connect-to-inet-socket (host-to-hbo host) port :stream - :local-host (if local-host - (host-to-hbo local-host)) + :local-host (host-to-hbo local-host) :local-port local-port))) (if socket (let* ((stream (sys:make-fd-stream socket :input t :output t @@ -84,8 +83,7 @@ (if (and host port) (setf socket (with-mapped-conditions (socket) (ext:connect-to-inet-socket (host-to-hbo host) port :datagram - :local-host (if local-host - (host-to-hbo local-host)) + :local-host (host-to-hbo local-host) :local-port local-port))) (progn (setf socket (with-mapped-conditions (socket)
Modified: usocket/branches/experimental-udp/backend/openmcl.lisp ============================================================================== --- usocket/branches/experimental-udp/backend/openmcl.lisp (original) +++ usocket/branches/experimental-udp/backend/openmcl.lisp Mon Oct 13 02:05:28 2008 @@ -81,9 +81,9 @@ (ecase protocol (:stream (let ((mcl-sock - (openmcl-socket:make-socket :remote-host (host-to-hostname host) + (openmcl-socket:make-socket :remote-host (host-to-hbo host) :remote-port port - :local-host (when local-host (host-to-hostname local-host)) + :local-host (host-to-hbo local-host) :local-port local-port :format (to-format element-type) :deadline deadline @@ -96,8 +96,7 @@ (let ((mcl-sock (openmcl-socket:make-socket :address-family :internet :type :datagram - :local-host (if local-host - (host-to-hbo local-host)) + :local-host (host-to-hbo local-host) :local-port local-port))) (when (and host port) (ccl::inet-connect (ccl::socket-device mcl-sock) @@ -140,7 +139,7 @@ (defmethod socket-send ((usocket datagram-usocket) buffer length &key address port) (with-mapped-conditions (usocket) (openmcl-socket:send-to (socket usocket) buffer length - :remote-host (if address (host-to-hbo address)) + :remote-host (host-to-hbo address) :remote-port port)))
(defmethod socket-receive ((usocket datagram-usocket) buffer length)
Modified: usocket/branches/experimental-udp/backend/sbcl.lisp ============================================================================== --- usocket/branches/experimental-udp/backend/sbcl.lisp (original) +++ usocket/branches/experimental-udp/backend/sbcl.lisp Mon Oct 13 02:05:28 2008 @@ -240,10 +240,11 @@ (sb-bsd-sockets:socket-connect socket ip port)) usocket)) (:datagram - (when (and local-host local-port) + (when (or local-host local-port) (sb-bsd-sockets:socket-bind socket - (host-to-vector-quad local-host) - local-port)) + (host-to-vector-quad + (or local-host *wildcard-host*)) + (or local-port *auto-port*))) (when (and host port) (sb-bsd-sockets:socket-connect socket (host-to-hbo host) port)) (make-datagram-socket socket)))
Modified: usocket/branches/experimental-udp/package.lisp ============================================================================== --- usocket/branches/experimental-udp/package.lisp (original) +++ usocket/branches/experimental-udp/package.lisp Mon Oct 13 02:05:28 2008 @@ -80,25 +80,4 @@
#:insufficient-implementation ; conditions regarding usocket support level #:unsupported - #:unimplemented) - - #+lispworks - (:import-from :comm - #:*socket_af_inet* - #:*socket_pf_unspec* - #:*sockopt_sol_socket* - #:%send - #:bind - #:close-socket - #:connect - #:getsockopt - #:in_addr - #:initialize-sockaddr_in - #:ntohl - #:ntohs - #:s_addr - #:setsockopt - #:sin_addr - #:sin_port - #:sockaddr - #:sockaddr_in)) + #:unimplemented))
Modified: usocket/branches/experimental-udp/server.lisp ============================================================================== --- usocket/branches/experimental-udp/server.lisp (original) +++ usocket/branches/experimental-udp/server.lisp Mon Oct 13 02:05:28 2008 @@ -10,7 +10,7 @@ &key (element-type '(unsigned-byte 8)) (timeout 1) (max-buffer-size +max-datagram-packet-size+)) (let ((socket (socket-connect nil nil - :protocol :udp + :protocol :datagram :local-host host :local-port port :element-type element-type))
Modified: usocket/branches/experimental-udp/usocket.lisp ============================================================================== --- usocket/branches/experimental-udp/usocket.lisp (original) +++ usocket/branches/experimental-udp/usocket.lisp Mon Oct 13 02:05:28 2008 @@ -407,6 +407,7 @@ (defun host-to-hostname (host) "Translate a string or vector quad to a stringified hostname." (etypecase host + (null nil) (string host) ((or (vector t 4) (array (unsigned-byte 8) (4))) @@ -460,6 +461,7 @@
(defun host-to-hbo (host) (etypecase host + (null nil) (string (let ((ip (ignore-errors (dotted-quad-to-vector-quad host)))) (if (and ip (= 4 (length ip)))