X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fsrw.c;h=197a5de73a71111c1fbf33f7cd539d23fc63de67;hb=e63923d5a33d54806b2d73670c26c57480c484da;hp=8ef2a622d755304863d58f3dd22ebfb956a9b391;hpb=421a6cab3464893ae0e28d929608b993912e0278;p=yaz-moved-to-github.git diff --git a/src/srw.c b/src/srw.c index 8ef2a62..197a5de 100644 --- a/src/srw.c +++ b/src/srw.c @@ -1,8 +1,8 @@ /* - * Copyright (C) 1995-2005, Index Data ApS + * Copyright (C) 1995-2006, Index Data ApS * See the file LICENSE for details. * - * $Id: srw.c,v 1.43 2006-02-03 10:44:57 adam Exp $ + * $Id: srw.c,v 1.49 2006-10-24 08:07:02 adam Exp $ */ /** * \file srw.c @@ -10,7 +10,7 @@ */ #include -#if HAVE_XML2 +#if YAZ_HAVE_XML2 #include #include @@ -539,8 +539,7 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, if (method->type != XML_ELEMENT_NODE) return -1; - *p = (Z_SRW_PDU *) odr_malloc(o, sizeof(**p)); - (*p)->srw_version = odr_strdup(o, "1.1"); + *p = yaz_srw_get_core_v_1_1(o); if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveRequest")) { @@ -592,8 +591,8 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, else if (match_xsd_string(ptr, "recordXPath", o, &req->recordXPath)) ; - else if (match_xsd_string(ptr, "resultSetTTL", o, - &req->database)) + else if (match_xsd_integer(ptr, "resultSetTTL", o, + &req->resultSetTTL)) ; else if (match_xsd_string(ptr, "sortKeys", o, &req->sort.sortKeys)) @@ -604,7 +603,11 @@ int yaz_srw_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, else if (match_xsd_string(ptr, "database", o, &req->database)) ; - /* missing is xQuery, xSortKeys .. */ + } + if (!req->query.cql && !req->query.pqf && !req->query.xcql) + { + /* should put proper diagnostic here */ + return -1; } } else if (!xmlStrcmp(method->name, BAD_CAST "searchRetrieveResponse")) @@ -967,8 +970,7 @@ int yaz_ucp_codec(ODR o, void * vptr, Z_SRW_PDU **handler_data, if (method->type != XML_ELEMENT_NODE) return -1; - *p = (Z_SRW_PDU *) odr_malloc(o, sizeof(**p)); - (*p)->srw_version = odr_strdup(o, "1.1"); + *p = yaz_srw_get_core_v_1_1(o); if (!xmlStrcmp(method->name, BAD_CAST "updateRequest")) {