/*
- * Copyright (c) 2000-2004, Index Data
+ * Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: zoom-c.c,v 1.33 2004-12-13 14:21:56 heikki Exp $
+ * $Id: zoom-c.c,v 1.37 2005-01-16 22:01:13 adam Exp $
*/
/**
* \file zoom-c.c
#include <yaz/ill.h>
#include <yaz/srw.h>
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
#if HAVE_SYS_POLL_H
#include <sys/poll.h>
#endif
+#if HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+#ifdef WIN32
+#include <winsock.h>
+#endif
-static int log_level=0;
-static int log_level_initialized=0;
+static int log_level = 0;
+static int log_level_initialized = 0;
typedef enum {
zoom_pending,
char *cp;
if (!log_level_initialized)
{
- log_level=yaz_log_module_level("zoom");
- log_level_initialized=1;
+ log_level = yaz_log_module_level("zoom");
+ log_level_initialized = 1;
}
xfree (c->addinfo);
if (!log_level_initialized)
{
- log_level=yaz_log_module_level("zoom");
- log_level_initialized=1;
+ log_level = yaz_log_module_level("zoom");
+ log_level_initialized = 1;
}
c->proto = PROTO_Z3950;
if (!log_level_initialized)
{
- log_level=yaz_log_module_level("zoom");
- log_level_initialized=1;
+ log_level = yaz_log_module_level("zoom");
+ log_level_initialized = 1;
}
if (c->cs)
if (!log_level_initialized)
{
- log_level=yaz_log_module_level("zoom");
- log_level_initialized=1;
+ log_level = yaz_log_module_level("zoom");
+ log_level_initialized = 1;
}
yaz_log (log_level, "ZOOM_resultset_create r = %p", r);
const char *effective_host;
if (!log_level_initialized)
{
- log_level=yaz_log_module_level("zoom");
- log_level_initialized=1;
+ log_level = yaz_log_module_level("zoom");
+ log_level_initialized = 1;
}
ZOOM_options_get(c->options, "implementationName"),
odr_prepend(c->odr_out, "ZOOM-C", ireq->implementationName));
- version = odr_strdup(c->odr_out, "$Revision: 1.33 $");
+ version = odr_strdup(c->odr_out, "$Revision: 1.37 $");
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
ireq->implementationVersion = odr_prepend(c->odr_out,
if (present_phase && p->num_records == 0)
{
/* present response and we didn't get any records! */
- set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0);
+ Z_NamePlusRecord *myrec =
+ zget_surrogateDiagRec(resultset->odr, 0, 14, 0);
+ record_cache_add(resultset, myrec, resultset->start);
+ yaz_log(YLOG_LOG, "pseudo record 1, at pos %d",
+ resultset->start);
}
}
else if (present_phase)
{
/* present response and we didn't get any records! */
- set_ZOOM_error(c, ZOOM_ERROR_DECODE, 0);
+ Z_NamePlusRecord *myrec =
+ zget_surrogateDiagRec(resultset->odr, 0, 14, 0);
+ record_cache_add(resultset, myrec, resultset->start);
+ yaz_log(YLOG_LOG, "pseudo record 1, at pos %d",
+ resultset->start);
}
}
}
Z_ItemOrder *req = (Z_ItemOrder *) odr_malloc (p->odr_out, sizeof(*req));
const char *str;
- req->which=Z_IOItemOrder_esRequest;
+ req->which = Z_IOItemOrder_esRequest;
req->u.esRequest = (Z_IORequest *)
odr_malloc(p->odr_out,sizeof(Z_IORequest));
toKeep = r->u.adminService->u.esRequest->toKeep =
(Z_ESAdminOriginPartToKeep *)
odr_malloc(p->odr_out, sizeof(*r->u.adminService->u.esRequest->toKeep));
- toKeep->which=type;
+ toKeep->which = type;
toKeep->databaseName = odr_strdup(p->odr_out, first_db);
- toKeep->u.create=odr_nullval();
+ toKeep->u.create = odr_nullval();
apdu->u.extendedServicesRequest->taskSpecificParameters = r;
r->u.adminService->u.esRequest->notToKeep = notToKeep =
(Z_ESAdminOriginPartNotToKeep *)
odr_malloc(p->odr_out,
sizeof(*r->u.adminService->u.esRequest->notToKeep));
- notToKeep->which=Z_ESAdminOriginPartNotToKeep_recordsWillFollow;
- notToKeep->u.recordsWillFollow=odr_nullval();
+ notToKeep->which = Z_ESAdminOriginPartNotToKeep_recordsWillFollow;
+ notToKeep->u.recordsWillFollow = odr_nullval();
if (toKeepP)
*toKeepP = toKeep;
if (notToKeepP)
if (p)
{
- char *charset=NULL, *lang=NULL;
+ char *charset = NULL, *lang = NULL;
int sel;
yaz_get_response_charneg(tmpmem, p, &charset, &lang, &sel);
ZOOM_connection_put_event (c, event);
yaz_log (log_level, "do_write_ex len=%d", len_out);
- if ((r=cs_put (c->cs, buf_out, len_out)) < 0)
+ if ((r = cs_put(c->cs, buf_out, len_out)) < 0)
{
if (c->reconnect_ok)
{