Mangle ZOOM_resultset in client_set_connection
[pazpar2-moved-to-github.git] / src / connection.c
index fecf51b..260196c 100644 (file)
@@ -236,7 +236,9 @@ static void non_block_events(struct connection *co)
 
 void connection_continue(struct connection *co)
 {
-    non_block_events(co);
+    int r = ZOOM_connection_exec_task(co->link);
+    if (!r)
+        yaz_log(YLOG_WARN, "No task was executed for connection");
 }
 
 static void connection_handler(IOCHAN iochan, int event)
@@ -249,6 +251,7 @@ static void connection_handler(IOCHAN iochan, int event)
         /* no client associated with it.. We are probably getting
            a closed connection from the target.. Or, perhaps, an unexpected
            package.. We will just close the connection */
+        yaz_log(YLOG_LOG, "timeout connection %p event=%d", co, event);
         connection_destroy(co);
         return;
     }
@@ -475,6 +478,9 @@ int client_prep_connection(struct client *cl,
             connection_release(co);
             client_set_connection(cl, co);
             co->client = cl;
+            /* ensure that connection is only assigned to this client
+               by marking the client non Idle */
+            client_set_state(cl, Client_Working);
             yaz_mutex_leave(host->mutex);
             co->operation_timeout = operation_timeout;
             co->session_timeout = session_timeout;