[hunchentoot-devel] [PATCH] handle ACCEPTOR-SHUTDOWN-P correctly
Desmond O. Chang
dochang at gmail.com
Sun Mar 20 09:33:17 UTC 2011
After stopping an acceptor with STOP, one can't start it again with
START, because the START method doesn't reset the value of
acceptor-shutdown-p to NIL, so the listener returns/quits instantly.
Also, the default value of ACCEPTOR-SHUTDOWN-P should be T, because
every acceptor should be closed when it is created.
See [1] & [2] for details.
[1] http://article.gmane.org/gmane.lisp.lib.tbnl.general/2469
[2] http://article.gmane.org/gmane.lisp.lib.tbnl.general/2868
---
acceptor.lisp | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/acceptor.lisp b/acceptor.lisp
index ba90e2e..168c9b9 100644
--- a/acceptor.lisp
+++ b/acceptor.lisp
@@ -120,7 +120,7 @@ connections.")
:documentation "Number of pending connections
allowed in the listen socket before the kernel rejects
further incoming connections.")
- (acceptor-shutdown-p :initform nil
+ (acceptor-shutdown-p :initform t
:accessor acceptor-shutdown-p
:documentation "A flag that makes the acceptor
shutdown itself when set to something other than NIL.")
@@ -266,6 +266,7 @@ they're using secure connections - see the SSL-ACCEPTOR class."))
;; general implementation
(defmethod start ((acceptor acceptor))
+ (setf (acceptor-shutdown-p acceptor) nil)
(start-listening acceptor)
(let ((taskmaster (acceptor-taskmaster acceptor)))
(setf (taskmaster-acceptor taskmaster) acceptor)
--
1.7.4.1
More information about the Tbnl-devel
mailing list