#include <yaz/snprintf.h>
#include <yaz/yaz-util.h>
-#include "util.h"
#include "eventl.h"
+#include "parameters.h"
#include "pazpar2.h"
#include "http.h"
#include "settings.h"
session_list = r;
r->timeout_iochan = iochan_create(-1, session_timeout, 0);
iochan_setdata(r->timeout_iochan, r);
- iochan_settimeout(r->timeout_iochan, global_parameters.session_timeout);
+ iochan_settimeout(r->timeout_iochan, service->session_timeout);
pazpar2_add_channel(r->timeout_iochan);
return r;
struct http_session *s = locate_session(rq, rs);
struct record_cluster *rec, *prev_r, *next_r;
struct record *r;
- struct conf_service *service = s->psession->service;
+ struct conf_service *service;
const char *idstr = http_argbyname(rq, "id");
const char *offsetstr = http_argbyname(rq, "offset");
const char *binarystr = http_argbyname(rq, "binary");
if (!s)
return;
+ service = s->psession->service;
if (!idstr)
{
error(rs, PAZPAR2_MISSING_PARAMETER, "id");
wrbuf_rewind(c->wrbuf);
if (!(rec = show_single(s->psession, idstr, &prev_r, &next_r)))
{
- if (session_set_watch(s->psession, SESSION_WATCH_RECORD,
+ if (session_active_clients(s->psession) == 0)
+ {
+ error(rs, PAZPAR2_RECORD_MISSING, idstr);
+ }
+ else if (session_set_watch(s->psession, SESSION_WATCH_RECORD,
cmd_record_ready, c, c) != 0)
{
error(rs, PAZPAR2_RECORD_MISSING, idstr);