X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsession.c;h=290c25279f79cc0b64c899ae4de57860e61bcd23;hb=cafa72a7f26ae7f3e0c0e2f6594302f370166a51;hp=6327ba97d2b35a8342897570613bdebf40f58f88;hpb=111cd7b055fafeb0bf763b3d44ddccdf9515a144;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index 6327ba9..290c252 100644 --- a/src/session.c +++ b/src/session.c @@ -25,6 +25,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #endif +#include #include #include #include @@ -513,6 +514,7 @@ enum pazpar2_error_code search(struct session *se, int no_working = 0; int no_failed = 0; struct client_list *l; + struct timeval tval; yaz_log(YLOG_DEBUG, "Search"); @@ -535,6 +537,10 @@ enum pazpar2_error_code search(struct session *se, } se->reclist = reclist_create(se->nmem); + gettimeofday(&tval, 0); + + tval.tv_sec += 5; + for (l = se->clients; l; l = l->next) { struct client *cl = l->client; @@ -552,7 +558,8 @@ enum pazpar2_error_code search(struct session *se, no_working++; if (client_prep_connection(cl, se->service->z3950_operation_timeout, se->service->z3950_session_timeout, - se->service->server->iochan_man)) + se->service->server->iochan_man, + &tval)) client_start_search(cl); } } @@ -1163,14 +1170,10 @@ int ingest_record(struct client *cl, const char *rec, xmlFreeDoc(xdoc); return -1; } - client_unlock(cl); session_enter(se); - client_lock(cl); if (client_get_session(cl) == se) ret = ingest_to_cluster(cl, xdoc, root, record_no, mergekey_norm); - client_unlock(cl); session_leave(se); - client_lock(cl); xmlFreeDoc(xdoc); return ret;