X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fsession.c;h=14b9a2caba8937a36bdf1cba09307d47638f6341;hb=88f96194d5a63278eb57b32c814019dab51da9ff;hp=465323898e85661316f744c8a15f7ed06ebe5095;hpb=82ea73ba3f80b690a9c72e316f893561e05291f1;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index 4653238..14b9a2c 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 @@ -359,7 +360,7 @@ static int prepare_map(struct session *se, struct session_database *sdb) } } sdb->map = normalize_cache_get(se->normalize_cache, - se->service, s); + se->service->server->config, s); if (!sdb->map) return -1; } @@ -513,6 +514,8 @@ enum pazpar2_error_code search(struct session *se, int no_working = 0; int no_failed = 0; struct client_list *l; + struct timespec abstime; + struct timeval tval; yaz_log(YLOG_DEBUG, "Search"); @@ -535,6 +538,11 @@ enum pazpar2_error_code search(struct session *se, } se->reclist = reclist_create(se->nmem); + gettimeofday(&tval, 0); + + abstime.tv_sec = tval.tv_sec + 5; + abstime.tv_nsec = tval.tv_usec * 1000; + for (l = se->clients; l; l = l->next) { struct client *cl = l->client; @@ -552,7 +560,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, + &abstime)) client_start_search(cl); } }