-/* $Id: http_command.c,v 1.59 2007-09-05 07:24:04 adam Exp $
+/* $Id: http_command.c,v 1.62 2007-09-10 16:25:50 adam Exp $
Copyright (c) 2006-2007, Index Data.
This file is part of Pazpar2.
*/
/*
- * $Id: http_command.c,v 1.59 2007-09-05 07:24:04 adam Exp $
+ * $Id: http_command.c,v 1.62 2007-09-10 16:25:50 adam Exp $
*/
#include <stdio.h>
switch (cmd->type)
{
case Metadata_type_generic:
- wrbuf_xmlputs(w, md->data.text);
+ wrbuf_xmlputs(w, md->data.text.disp);
break;
case Metadata_type_year:
wrbuf_printf(w, "%d", md->data.number.min);
client_show_raw_reset(client);
}
+static void cmd_record_ready(void *data);
+
static void cmd_record(struct http_channel *c)
{
struct http_response *rs = c->response;
wrbuf_rewind(c->wrbuf);
if (!(rec = show_single(s->psession, idstr)))
{
- error(rs, PAZPAR2_RECORD_MISSING, idstr);
+ if (session_set_watch(s->psession, SESSION_WATCH_RECORD,
+ cmd_record_ready, c, c) != 0)
+ {
+ error(rs, PAZPAR2_RECORD_MISSING, idstr);
+ }
return;
}
if (offsetstr)
}
}
+static void cmd_record_ready(void *data)
+{
+ struct http_channel *c = (struct http_channel *) data;
+
+ cmd_record(c);
+}
+
static void show_records(struct http_channel *c, int active)
{
struct http_request *rq = c->request;
if (status && (!s->psession->reclist || !s->psession->reclist->num_records))
{
// if there is already a watch/block. we do not block this one
- if (session_set_watch(s->psession,
- SESSION_WATCH_RECORDS,
- show_records_ready, c, c) == 0)
+ if (session_set_watch(s->psession, SESSION_WATCH_SHOW,
+ show_records_ready, c, c) != 0)
{
yaz_log(YLOG_DEBUG, "Blocking on cmd_show");
- return;
}
+ return;
}
}