From c725b36a58d17d63528ff96453a3fab172c699f9 Mon Sep 17 00:00:00 2001 From: Stelian Ionescu Date: Sat, 26 Jan 2008 23:11:20 +0100 Subject: [PATCH] Change arglist of SHUTDOWN from (SOCKET DIRECTION) to (SOCKET &KEY READ WRITE). Signed-off-by: Stelian Ionescu --- net.sockets/base-sockets.lisp | 2 +- net.sockets/socket-methods.lisp | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/net.sockets/base-sockets.lisp b/net.sockets/base-sockets.lisp index 311ab88..ee5e7c3 100644 --- a/net.sockets/base-sockets.lisp +++ b/net.sockets/base-sockets.lisp @@ -73,7 +73,7 @@ (defgeneric socket-connected-p (socket)) -(defgeneric shutdown (socket direction)) +(defgeneric shutdown (socket &key &allow-other-keys)) (defgeneric receive-from (socket &rest args &key &allow-other-keys)) diff --git a/net.sockets/socket-methods.lisp b/net.sockets/socket-methods.lisp index 14832f4..f3d5b9f 100644 --- a/net.sockets/socket-methods.lisp +++ b/net.sockets/socket-methods.lisp @@ -332,18 +332,17 @@ ;;;; SHUTDOWN -(defmethod shutdown ((socket active-socket) direction) - (check-type direction (member :read :write :read-write) - "one of :READ, :WRITE or :READ-WRITE") +(defmethod shutdown ((socket active-socket) &key read write) + (assert (or read write) (read write) + "You must select at least one direction to shut down.") (%shutdown (fd-of socket) - (ecase direction - (:read shut-rd) - (:write shut-wr) - (:read-write shut-rdwr))) + (multiple-value-case (read write) + ((_ nil) shut-rd) + ((nil _) shut-wr) + (t shut-rdwr))) (values socket)) -(defmethod shutdown ((socket passive-socket) direction) - (declare (ignore direction)) +(defmethod shutdown ((socket passive-socket) &key) (error "You cannot shut down passive sockets.")) ;;;; SENDTO -- 2.11.4.GIT