-/* $Id: client.c,v 1.25 2007-09-20 09:22:37 adam Exp $
+/* $Id: client.c,v 1.26 2007-10-02 10:11:56 adam Exp $
Copyright (c) 2006-2007, Index Data.
This file is part of Pazpar2.
size_t sz))
{
if (cl->show_raw)
+ { /* raw show already in progress */
return -1;
+ }
+ if (!cl->connection)
+ { /* the client has no connection */
+ return -2;
+ }
cl->show_raw = xmalloc(sizeof(*cl->show_raw));
cl->show_raw->position = position;
cl->show_raw->active = 0;
-/* $Id: http_command.c,v 1.62 2007-09-10 16:25:50 adam Exp $
+/* $Id: http_command.c,v 1.63 2007-10-02 10:11:56 adam Exp $
Copyright (c) 2006-2007, Index Data.
This file is part of Pazpar2.
*/
/*
- * $Id: http_command.c,v 1.62 2007-09-10 16:25:50 adam Exp $
+ * $Id: http_command.c,v 1.63 2007-10-02 10:11:56 adam Exp $
*/
#include <stdio.h>
{
http_channel_observer_t obs =
http_add_observer(c, r->client, show_raw_reset);
- if (client_show_raw_begin(r->client, r->position, syntax, esn,
+ int ret =
+ client_show_raw_begin(r->client, r->position, syntax, esn,
obs /* data */,
show_raw_record_error,
- show_raw_record_ok))
+ show_raw_record_ok);
+ if (ret == -1)
{
http_remove_observer(obs);
- error(rs, PAZPAR2_RECORD_FAIL, "invalid parameters");
+ error(rs, PAZPAR2_RECORD_FAIL, "show already active");
+ return;
+ }
+ else if (ret == -2)
+ {
+ http_remove_observer(obs);
+ error(rs, PAZPAR2_NO_SESSION, 0);
return;
}
}