From 682b88ac644be23e8927f65c4884cd6671097282 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Thu, 20 Jan 2005 20:13:36 +0100
Subject: [PATCH] Updated change_backend_for_box() to unlink the box from the
 old backend.

Rev: src/backend.cmod:1.163
---
 src/backend.cmod | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/backend.cmod b/src/backend.cmod
index cbb86a9c41..4cf8ec37f6 100644
--- a/src/backend.cmod
+++ b/src/backend.cmod
@@ -5,7 +5,7 @@
 */
 
 /*
- * $Id: backend.cmod,v 1.162 2005/01/20 18:26:46 grubba Exp $
+ * $Id: backend.cmod,v 1.163 2005/01/20 19:13:36 grubba Exp $
  *
  * Backend object.
  */
@@ -1866,6 +1866,17 @@ PIKECLASS Backend
     if (old != new) {
       if (box->fd >= 0) update_fd_set (old, box->fd, box->events, 0);
       remove_fd_box (box);
+      if (box->next) {
+	/* The box is active in the old backend. Unlink it. */
+	struct fd_callback_box *pred = box->next;
+	/* Find the predecessor. */
+	while (pred->next != box) {
+	  pred = pred->next;
+	}
+	pred->next = box->next;
+	box->next = NULL;
+	if (box->ref_obj) free_object(box->ref_obj);
+      }
       box->backend = new;
       add_fd_box (box);
       if (box->fd >= 0) update_fd_set (new, box->fd, 0, box->events);
-- 
GitLab