X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-bsd-sockets%2Fsockets.lisp;h=e9fa645da5958a33f7d63466df5e404d327b4053;hb=134fa6b3f7c5f4bb0652e74227d940a9e7a83563;hp=54ac2ec900193ce206661b057005a332669d1f7b;hpb=5a0fd10d9995460c34c0cfb509b97d1cc931932b;p=sbcl.git diff --git a/contrib/sb-bsd-sockets/sockets.lisp b/contrib/sb-bsd-sockets/sockets.lisp index 54ac2ec..e9fa645 100644 --- a/contrib/sb-bsd-sockets/sockets.lisp +++ b/contrib/sb-bsd-sockets/sockets.lisp @@ -20,7 +20,7 @@ protocol. Other values are used as-is.") :reader socket-type :documentation "Type of the socket: :STREAM or :DATAGRAM.") (stream)) - (:documentation "Common base class of all sockets, not ment to be + (:documentation "Common base class of all sockets, not meant to be directly instantiated."))) (defmethod print-object ((object socket) stream) @@ -96,7 +96,9 @@ values")) sockaddr (size-of-sockaddr socket)))) (cond - ((and (= fd -1) (= sockint::EAGAIN (sb-unix::get-errno))) + ((and (= fd -1) + (member (sb-unix::get-errno) + (list sockint::EAGAIN sockint::EINTR))) nil) ((= fd -1) (socket-error "accept")) (t (apply #'values @@ -200,7 +202,10 @@ small")) sockaddr (sb-alien:addr sa-len)))) (cond - ((and (= len -1) (= sockint::EAGAIN (sb-unix::get-errno))) nil) + ((and (= len -1) + (member (sb-unix::get-errno) + (list sockint::EAGAIN sockint::EINTR))) + nil) ((= len -1) (socket-error "recvfrom")) (t (loop for i from 0 below len do (setf (elt buffer i) @@ -276,7 +281,7 @@ send(2) will be called instead. Returns the number of octets written.")) (cond ((and (= len -1) (member (sb-unix::get-errno) - '(sockint::EAGAIN sockint::EINTR))) + (list sockint::EAGAIN sockint::EINTR))) nil) ((= len -1) (socket-error "sendto")) @@ -351,7 +356,7 @@ SB-SYS:MAKE-FD-STREAM.")) (unless stream (setf stream (apply #'sb-sys:make-fd-stream (socket-file-descriptor socket) - :name "a constant string" + :name "a socket" :dual-channel-p t args)) (setf (slot-value socket 'stream) stream)