X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsession.c;h=61f7e54ebd1c8de77f28c73eb144438b1d6d1fba;hb=4a750da30cd12e7490a4162ade70a8b14145121d;hp=b17b29bedcbf3987f11ce6ea1e1b80cc5baf1610;hpb=2ebf0b250fd141b7a3e186e7e99bfc76e29e39d7;p=pazpar2-moved-to-github.git diff --git a/src/session.c b/src/session.c index b17b29b..61f7e54 100644 --- a/src/session.c +++ b/src/session.c @@ -35,6 +35,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #if HAVE_UNISTD_H #include #endif +#ifdef WIN32 +#include +#endif #include #include #include @@ -52,6 +55,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include #include #include +#include #define USE_TIMING 0 #if USE_TIMING @@ -514,7 +518,6 @@ 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"); @@ -538,10 +541,9 @@ enum pazpar2_error_code search(struct session *se, } se->reclist = reclist_create(se->nmem); - gettimeofday(&tval, 0); + yaz_gettimeofday(&tval); - abstime.tv_sec = tval.tv_sec + 5; - abstime.tv_nsec = tval.tv_usec * 1000; + tval.tv_sec += 5; for (l = se->clients; l; l = l->next) { @@ -561,7 +563,7 @@ enum pazpar2_error_code search(struct session *se, if (client_prep_connection(cl, se->service->z3950_operation_timeout, se->service->z3950_session_timeout, se->service->server->iochan_man, - &abstime)) + &tval)) client_start_search(cl); } } @@ -979,7 +981,10 @@ static int get_mergekey_from_doc(xmlDoc *doc, xmlNode *root, const char *name, if (!strcmp((const char *) n->name, "metadata")) { xmlChar *type = xmlGetProp(n, (xmlChar *) "type"); - if (!strcmp(name, (const char *) type)) + if (type == NULL) { + yaz_log(YLOG_FATAL, "Missing type attribute on metadata element. Skipping!"); + } + else if (!strcmp(name, (const char *) type)) { xmlChar *value = xmlNodeListGetString(doc, n->children, 1); if (value) @@ -1138,6 +1143,7 @@ static int ingest_to_cluster(struct client *cl, \param cl client holds the result set for record \param rec record buffer (0 terminated) \param record_no record position (1, 2, ..) + \param nmem working NMEM \retval 0 OK \retval -1 failure */