key client sockets on the server-side socket name, not the peername
This commit is contained in:
parent
7d43627bcc
commit
3303d3b7de
1 changed files with 10 additions and 5 deletions
|
@ -117,13 +117,18 @@
|
||||||
;;;=====================================================================
|
;;;=====================================================================
|
||||||
|
|
||||||
(defun register-tcp-client (server transmitter)
|
(defun register-tcp-client (server transmitter)
|
||||||
(setf (gethash (make-peername-string (socket transmitter))
|
"Clients are keyed on the names-string of the server-side socket,
|
||||||
(clients server))
|
not the peer name because the peer may close the socket after which
|
||||||
transmitter))
|
the peer name is no longer available. FIXME: Maybe we want to store
|
||||||
|
the peername independently of the socket's connection status?"
|
||||||
|
(let ((client-name (make-name-string transmitter)))
|
||||||
|
(when (debug-mode server)
|
||||||
|
(format t "Client registered: ~A~%" client-name))
|
||||||
|
(setf (gethash client-name (clients server)) transmitter)))
|
||||||
|
|
||||||
(defun unregister-tcp-client (server transmitter)
|
(defun unregister-tcp-client (server transmitter)
|
||||||
(remhash (make-peername-string (socket transmitter))
|
(remhash (make-name-string transmitter)
|
||||||
(clients server)))
|
(clients server)))
|
||||||
|
|
||||||
(defun make-unregister-self-fun (server)
|
(defun make-unregister-self-fun (server)
|
||||||
#'(lambda (client)
|
#'(lambda (client)
|
||||||
|
|
Loading…
Add table
Reference in a new issue