X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fhttp_command.c;h=e3981b222bb97e8eea9ddfaf964e393cc9ff725e;hb=f610400c28d8cb132fa1c5a0dc5fba94d64a751a;hp=9749ce67d560f807bc3053c4c1d1c40f29238e56;hpb=ddf9bdfd1e80474ce5a3772f77c4401908654b6e;p=pazpar2-moved-to-github.git
diff --git a/src/http_command.c b/src/http_command.c
index 9749ce6..e3981b2 100644
--- a/src/http_command.c
+++ b/src/http_command.c
@@ -1,5 +1,5 @@
/* 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
@@ -117,6 +117,7 @@ static const char *get_msg(enum pazpar2_error_code code)
{ 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 }
};
@@ -279,7 +280,7 @@ static void cmd_init(struct http_channel *c)
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);
@@ -379,7 +380,8 @@ static void targets_termlist(WRBUF wrbuf, struct session *se, int num,
wrbuf_xmlputs(wrbuf, ht[i].name);
wrbuf_puts(wrbuf, "\n");
- wrbuf_printf(wrbuf, "%d\n", ht[i].hits);
+ wrbuf_printf(wrbuf, "" ODR_INT_PRINTF "\n",
+ ht[i].hits);
wrbuf_puts(wrbuf, "");
wrbuf_xmlputs(wrbuf, ht[i].state);
@@ -496,7 +498,7 @@ static void cmd_bytarget(struct http_channel *c)
wrbuf_puts(c->wrbuf, "\n");
}
- wrbuf_printf(c->wrbuf, "%d\n", ht[i].hits);
+ wrbuf_printf(c->wrbuf, "" ODR_INT_PRINTF "\n", ht[i].hits);
wrbuf_printf(c->wrbuf, "%d\n", ht[i].diagnostic);
wrbuf_printf(c->wrbuf, "%d\n", ht[i].records);
@@ -531,8 +533,16 @@ static void write_metadata(WRBUF w, struct conf_service *service,
continue;
for (md = ml[imeta]; md; md = md->next)
{
- wrbuf_printf(w, "\n", cmd->name);
+ struct record_metadata_attr *attr = md->attributes;
+ wrbuf_printf(w, "\nname);
+ for (; attr; attr = attr->next)
+ {
+ wrbuf_printf(w, " %s=\"", attr->name);
+ wrbuf_xmlputs(w, attr->value);
+ wrbuf_puts(w, "\"");
+ }
+ wrbuf_puts(w, ">");
switch (cmd->type)
{
case Metadata_type_generic:
@@ -739,7 +749,7 @@ static void show_records(struct http_channel *c, int active)
int startn = 0;
int numn = 20;
int total;
- int total_hits;
+ Odr_int total_hits;
int i;
if (!s)
@@ -767,7 +777,7 @@ static void show_records(struct http_channel *c, int active)
wrbuf_puts(c->wrbuf, HTTP_COMMAND_RESPONSE_PREFIX "\nOK\n");
wrbuf_printf(c->wrbuf, "%d\n", active);
wrbuf_printf(c->wrbuf, "%d\n", total);
- wrbuf_printf(c->wrbuf, "%d\n", total_hits);
+ wrbuf_printf(c->wrbuf, "" ODR_INT_PRINTF "\n", total_hits);
wrbuf_printf(c->wrbuf, "%d\n", startn);
wrbuf_printf(c->wrbuf, "%d\n", numn);
@@ -928,7 +938,7 @@ static void cmd_stat(struct http_channel *c)
wrbuf_rewind(c->wrbuf);
wrbuf_puts(c->wrbuf, HTTP_COMMAND_RESPONSE_PREFIX "");
wrbuf_printf(c->wrbuf, "%d\n", clients);
- wrbuf_printf(c->wrbuf, "%d\n", stat.num_hits);
+ wrbuf_printf(c->wrbuf, "" ODR_INT_PRINTF "\n", stat.num_hits);
wrbuf_printf(c->wrbuf, "%d\n", stat.num_records);
wrbuf_printf(c->wrbuf, "%d\n", stat.num_clients);
wrbuf_printf(c->wrbuf, "%d\n", stat.num_no_connection);