/* This file is part of Pazpar2.
- Copyright (C) 2006-2009 Index Data
+ Copyright (C) 2006-2010 Index Data
Pazpar2 is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
{ PAZPAR2_CONFIG_TARGET, "Target cannot be configured"},
{ PAZPAR2_RECORD_FAIL, "Record command failed"},
{ PAZPAR2_NOT_IMPLEMENTED, "Not implemented"},
+ { PAZPAR2_NO_SERVICE, "No service"},
{ PAZPAR2_LAST_ERROR, "Last error"},
{ 0, 0 }
};
service = locate_service(c->server, service_name);
if (!service)
{
- error(rs, PAZPAR2_MALFORMED_PARAMETER_VALUE, "service");
+ error(rs, PAZPAR2_NO_SERVICE, service_name ? service_name : "unnamed");
return;
}
service_incref(service);
s->session_id = sesid;
if (process_settings(s->psession, c->request, c->response) < 0)
return;
- sprintf(buf, HTTP_COMMAND_RESPONSE_PREFIX "<init><status>OK</status><session>%u</session>"
- "<protocol>" PAZPAR2_PROTOCOL_VERSION "</protocol></init>", sesid);
+
+ sprintf(buf, HTTP_COMMAND_RESPONSE_PREFIX
+ "<init><status>OK</status><session>%u", sesid);
+ if (c->server->server_id)
+ {
+ strcat(buf, ".");
+ strcat(buf, c->server->server_id);
+ }
+ strcat(buf, "</session>"
+ "<protocol>" PAZPAR2_PROTOCOL_VERSION "</protocol></init>");
rs->payload = nmem_strdup(c->nmem, buf);
http_send_response(c);
}
wrbuf_xmlputs(wrbuf, ht[i].name);
wrbuf_puts(wrbuf, "</name>\n");
- wrbuf_printf(wrbuf, "<frequency>%d</frequency>\n", ht[i].hits);
+ wrbuf_printf(wrbuf, "<frequency>" ODR_INT_PRINTF "</frequency>\n",
+ ht[i].hits);
wrbuf_puts(wrbuf, "<state>");
wrbuf_xmlputs(wrbuf, ht[i].state);
wrbuf_puts(c->wrbuf, "</name>\n");
}
- wrbuf_printf(c->wrbuf, "<hits>%d</hits>\n", ht[i].hits);
+ wrbuf_printf(c->wrbuf, "<hits>" ODR_INT_PRINTF "</hits>\n", ht[i].hits);
wrbuf_printf(c->wrbuf, "<diagnostic>%d</diagnostic>\n", ht[i].diagnostic);
wrbuf_printf(c->wrbuf, "<records>%d</records>\n", ht[i].records);
int startn = 0;
int numn = 20;
int total;
- int total_hits;
+ Odr_int total_hits;
int i;
if (!s)
wrbuf_puts(c->wrbuf, HTTP_COMMAND_RESPONSE_PREFIX "<show>\n<status>OK</status>\n");
wrbuf_printf(c->wrbuf, "<activeclients>%d</activeclients>\n", active);
wrbuf_printf(c->wrbuf, "<merged>%d</merged>\n", total);
- wrbuf_printf(c->wrbuf, "<total>%d</total>\n", total_hits);
+ wrbuf_printf(c->wrbuf, "<total>" ODR_INT_PRINTF "</total>\n", total_hits);
wrbuf_printf(c->wrbuf, "<start>%d</start>\n", startn);
wrbuf_printf(c->wrbuf, "<num>%d</num>\n", numn);
wrbuf_rewind(c->wrbuf);
wrbuf_puts(c->wrbuf, HTTP_COMMAND_RESPONSE_PREFIX "<stat>");
wrbuf_printf(c->wrbuf, "<activeclients>%d</activeclients>\n", clients);
- wrbuf_printf(c->wrbuf, "<hits>%d</hits>\n", stat.num_hits);
+ wrbuf_printf(c->wrbuf, "<hits>" ODR_INT_PRINTF "</hits>\n", stat.num_hits);
wrbuf_printf(c->wrbuf, "<records>%d</records>\n", stat.num_records);
wrbuf_printf(c->wrbuf, "<clients>%d</clients>\n", stat.num_clients);
wrbuf_printf(c->wrbuf, "<unconnected>%d</unconnected>\n", stat.num_no_connection);