]> granicus.if.org Git - pgbouncer/commitdiff
cancel pkt handler forgot to set pool, thus crashed later
authorMarko Kreen <markokr@gmail.com>
Wed, 23 May 2007 08:41:48 +0000 (08:41 +0000)
committerMarko Kreen <markokr@gmail.com>
Wed, 23 May 2007 08:41:48 +0000 (08:41 +0000)
src/objects.c

index dec7621a829b33f8cc8edf89cb75678b6f6f9224..98ce561ee3ba5e3faa0854515d97d3743517bd4f 100644 (file)
@@ -844,10 +844,12 @@ void accept_cancel_request(PgSocket *req)
        /* remember server key */
        server = main_client->link;
        memcpy(req->cancel_key, server->cancel_key, 8);
-       statlist_remove(&req->head, &login_client_list);
-       statlist_append(&req->head, &pool->cancel_req_list);
-       req->state =  CL_CANCEL;
 
+       /* attach to target pool */
+       req->pool = pool;
+       change_client_state(req, CL_CANCEL);
+
+       /* need fresh connection */
        launch_new_connection(pool);
 }