X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-bsd-sockets%2Fsockets.lisp;h=072dc079986affa7b588fe05542f37a0fa3eedc7;hb=27763fafd1b170518ac2e85b9344fdddddcfd7c5;hp=829829a5ba59eabf25ea771824688b8cb4c28a96;hpb=34f433eb2a61281c2cd274687d33b61f577f4ba4;p=sbcl.git diff --git a/contrib/sb-bsd-sockets/sockets.lisp b/contrib/sb-bsd-sockets/sockets.lisp index 829829a..072dc07 100644 --- a/contrib/sb-bsd-sockets/sockets.lisp +++ b/contrib/sb-bsd-sockets/sockets.lisp @@ -5,10 +5,6 @@ (eval-when (:load-toplevel :compile-toplevel :execute) -#+win32 -(defvar *wsa-startup-call* - (sockint::wsa-startup (sockint::make-wsa-version 2 2))) - (defclass socket () ((file-descriptor :initarg :descriptor :reader socket-file-descriptor) @@ -24,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) @@ -100,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 @@ -204,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) @@ -280,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"))