Hi,

I found that with-accept-connection is no call shutdown on the socket,
but without this FIN will be sent to the client.

diff --git a/src/sockets/make-socket.lisp b/src/sockets/make-socket.lisp
index b87a214..e4e1d06 100644
--- a/src/sockets/make-socket.lisp
+++ b/src/sockets/make-socket.lisp
@@ -274,7 +274,10 @@ The socket is automatically closed upon exit."
 (defmacro with-accept-connection ((var passive-socket &rest args) &body
body)
   "Bind VAR to a socket created by passing PASSIVE-SOCKET and ARGS to
ACCEPT-CONNECTION and execute BODY as implicit PROGN.
 The socket is automatically closed upon exit."
-  `(with-open-stream (,var (accept-connection ,passive-socket ,@args))
,@body))
+  `(with-open-stream (,var (accept-connection ,passive-socket ,@args))
+     (unwind-protect
+          (progn ,@body)
+       (shutdown ,var :write t :read t))))
 
 ;;; MAKE-SOCKET-FROM-FD


Andrey
_______________________________________________
IOLib-devel mailing list
[email protected]
http://common-lisp.net/cgi-bin/mailman/listinfo/iolib-devel

Reply via email to