]> granicus.if.org Git - pgbouncer/commitdiff
Fix cancellation of of waiting clients
authorMathieu Fenniak <biziqe@mathieu.fenniak.net>
Fri, 7 Dec 2012 02:15:41 +0000 (19:15 -0700)
committerMathieu Fenniak <biziqe@mathieu.fenniak.net>
Fri, 7 Dec 2012 02:15:41 +0000 (19:15 -0700)
Search waiting_client_list for client to-be-cancelled, in addition
to active_client_list.

src/objects.c

index b61387f8f867922cbe19a00b53d26b7c24c5c69e..aa4a93c88319585688837218fe219b7b931a0f09 100644 (file)
@@ -1076,6 +1076,13 @@ void accept_cancel_request(PgSocket *req)
                                goto found;
                        }
                }
+               statlist_for_each(citem, &pool->waiting_client_list) {
+                       client = container_of(citem, PgSocket, head);
+                       if (memcmp(client->cancel_key, req->cancel_key, 8) == 0) {
+                               main_client = client;
+                               goto found;
+                       }
+               }
        }
 found: