(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)
: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)
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
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)
(cond
((and (= len -1)
(member (sb-unix::get-errno)
- '(sockint::EAGAIN sockint::EINTR)))
+ (list sockint::EAGAIN sockint::EINTR)))
nil)
((= len -1)
(socket-error "sendto"))
(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)