Remove iochan_setevent logic. Not in use anymore
[pazpar2-moved-to-github.git] / src / connection.c
index 1525dfb..72c1260 100644 (file)
@@ -79,7 +79,7 @@ static int connection_is_idle(struct connection *co)
     if (!ZOOM_connection_is_idle(link))
         return 0;
     event = ZOOM_connection_peek_event(link);
-    if (event == ZOOM_EVENT_NONE || event == ZOOM_EVENT_END)
+    if (event == ZOOM_EVENT_NONE)
         return 1;
     else
         return 0;
@@ -414,7 +414,7 @@ static int connection_connect(struct connection *con, iochan_man_t iochan_man)
         ZOOM_connection_connect(link, host->ipport, 0);
     
     con->link = link;
-    con->iochan = iochan_create(0, connection_handler, 0);
+    con->iochan = iochan_create(0, connection_handler, 0, "connection_socket");
     con->state = Conn_Connecting;
     iochan_settimeout(con->iochan, con->operation_timeout);
     iochan_setdata(con->iochan, con);
@@ -475,6 +475,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;