/*
- * $Id: http_command.c,v 1.25 2007-01-18 16:21:23 quinn Exp $
+ * $Id: http_command.c,v 1.29 2007-03-28 12:05:18 marc Exp $
*/
#include <stdio.h>
r->timestamp = 0;
r->next = session_list;
session_list = r;
- r->timeout_iochan = iochan_create(-1, session_timeout, 0);
+ r->timeout_iochan = iochan_create(-1, 0, session_timeout, 0);
iochan_setdata(r->timeout_iochan, r);
iochan_settimeout(r->timeout_iochan, global_parameters.session_timeout);
r->timeout_iochan->next = channel_list;
for (i = 0; i < count && i < num && ht[i].hits > 0; i++)
{
wrbuf_puts(wrbuf, "\n<term>\n");
- wrbuf_printf(wrbuf, "<name>%s</name>\n", ht[i].id);
+ wrbuf_printf(wrbuf, "<id>%s</id>\n", ht[i].id);
+ wrbuf_printf(wrbuf, "<name>%s</name>\n", ht[i].name);
wrbuf_printf(wrbuf, "<frequency>%d</frequency>\n", ht[i].hits);
wrbuf_printf(wrbuf, "<state>%s</state>\n", ht[i].state);
wrbuf_printf(wrbuf, "<diagnostic>%d</diagnostic>\n", ht[i].diagnostic);
name++;
}
wrbuf_puts(c->wrbuf, "</termlist>");
- rs->payload = nmem_strdup(rq->channel->nmem, wrbuf_buf(c->wrbuf));
+ rs->payload = nmem_strdup(rq->channel->nmem, wrbuf_cstr(c->wrbuf));
http_send_response(c);
}
}
wrbuf_puts(c->wrbuf, "</bytarget>");
- rs->payload = nmem_strdup(c->nmem, wrbuf_buf(c->wrbuf));
+ rs->payload = nmem_strdup(c->nmem, wrbuf_cstr(c->wrbuf));
http_send_response(c);
}
static void write_subrecord(struct record *r, WRBUF w, struct conf_service *service)
{
- wrbuf_printf(w, "<location id=\"%s\">\n", r->client->database->url);
+ wrbuf_printf(w, "<location id=\"%s\" name=\"%s\">\n",
+ r->client->database->url,
+ r->client->database->name ? r->client->database->name : "");
write_metadata(w, service, r->metadata, 1);
wrbuf_puts(w, "</location>\n");
}
for (r = rec->records; r; r = r->next)
write_subrecord(r, c->wrbuf, service);
wrbuf_puts(c->wrbuf, "</record>\n");
- rs->payload = nmem_strdup(c->nmem, wrbuf_buf(c->wrbuf));
+ rs->payload = nmem_strdup(c->nmem, wrbuf_cstr(c->wrbuf));
http_send_response(c);
}
}
wrbuf_puts(c->wrbuf, "</show>\n");
- rs->payload = nmem_strdup(c->nmem, wrbuf_buf(c->wrbuf));
+ rs->payload = nmem_strdup(c->nmem, wrbuf_cstr(c->wrbuf));
http_send_response(c);
}
struct http_response *rs = c->response;
struct http_session *s = locate_session(rq, rs);
char *query = http_argbyname(rq, "query");
+ char *filter = http_argbyname(rq, "filter");
char *res;
if (!s)
error(rs, "417", "Must supply query", 0);
return;
}
- res = search(s->psession, query);
+ res = search(s->psession, query, filter);
if (res)
{
error(rs, "417", res, res);
wrbuf_printf(c->wrbuf, "<failed>%d</failed>\n", stat.num_failed);
wrbuf_printf(c->wrbuf, "<error>%d</error>\n", stat.num_error);
wrbuf_puts(c->wrbuf, "</stat>");
- rs->payload = nmem_strdup(c->nmem, wrbuf_buf(c->wrbuf));
+ rs->payload = nmem_strdup(c->nmem, wrbuf_cstr(c->wrbuf));
http_send_response(c);
}
wrbuf_printf(c->wrbuf, " </version>\n");
wrbuf_puts(c->wrbuf, "</info>");
- rs->payload = nmem_strdup(c->nmem, wrbuf_buf(c->wrbuf));
+ rs->payload = nmem_strdup(c->nmem, wrbuf_cstr(c->wrbuf));
http_send_response(c);
}