X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-bsd-sockets%2Fsockets.lisp;h=549b471ae12428cc561c80f4b67b14ceb658fcb0;hb=96bb2dc76dddb1a21b3886fa7522796879e9ed9d;hp=554d11b27cc25e1ac48555dd262b44e6669932f3;hpb=1f77eb1b15dad4e51c64133cd354dab2de11013e;p=sbcl.git diff --git a/contrib/sb-bsd-sockets/sockets.lisp b/contrib/sb-bsd-sockets/sockets.lisp index 554d11b..549b471 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) @@ -156,25 +156,27 @@ values")) (defgeneric socket-receive (socket buffer length &key - oob peek waitall element-type) - (:documentation "Read LENGTH octets from SOCKET into BUFFER (or a freshly-consed buffer if -NIL), using recvfrom(2). If LENGTH is NIL, the length of BUFFER is -used, so at least one of these two arguments must be non-NIL. If -BUFFER is supplied, it had better be of an element type one octet wide. -Returns the buffer, its length, and the address of the peer -that sent it, as multiple values. On datagram sockets, sets MSG_TRUNC -so that the actual packet length is returned even if the buffer was too -small")) + oob peek waitall dontwait element-type) + (:documentation + "Read LENGTH octets from SOCKET into BUFFER (or a freshly-consed +buffer if NIL), using recvfrom(2). If LENGTH is NIL, the length of +BUFFER is used, so at least one of these two arguments must be +non-NIL. If BUFFER is supplied, it had better be of an element type +one octet wide. Returns the buffer, its length, and the address of the +peer that sent it, as multiple values. On datagram sockets, sets +MSG_TRUNC so that the actual packet length is returned even if the +buffer was too small.")) (defmethod socket-receive ((socket socket) buffer length &key - oob peek waitall + oob peek waitall dontwait (element-type 'character)) (with-sockaddr-for (socket sockaddr) (let ((flags (logior (if oob sockint::MSG-OOB 0) (if peek sockint::MSG-PEEK 0) (if waitall sockint::MSG-WAITALL 0) + (if dontwait sockint::MSG-DONTWAIT 0) #+linux sockint::MSG-NOSIGNAL ;don't send us SIGPIPE (if (eql (socket-type socket) :datagram) sockint::msg-TRUNC 0)))) @@ -356,7 +358,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)