struct http_response *rs = ch->response;
struct http_buf *hb;
+ yaz_timing_stop(ch->yt);
+ yaz_log(YLOG_LOG, "Response: %6.5f %3.2f %3.2f",
+ yaz_timing_get_real(ch->yt), yaz_timing_get_user(ch->yt),
+ yaz_timing_get_sys(ch->yt));
assert(rs);
hb = http_serialize_response(ch, rs);
if (!hb)
fflush(hc->http_server->record_file);
}
#endif
+ yaz_timing_start(hc->yt);
if (!(hc->request = http_parse_request(hc, &hc->iqueue, reqlen)))
{
yaz_log(YLOG_WARN, "Failed to parse request");
http_buf_destroy_queue(s->http_server, s->proxy->oqueue);
xfree(s->proxy);
}
+ yaz_timing_destroy(&s->yt);
http_buf_destroy_queue(s->http_server, s->iqueue);
http_buf_destroy_queue(s->http_server, s->oqueue);
http_fire_observers(s);
}
strcpy(r->addr, addr);
r->observers = 0;
+ r->yt = yaz_timing_create();
return r;
}
#define HTTP_H
#include <yaz/wrbuf.h>
+#include <yaz/timing.h>
#include "eventl.h"
// Generic I/O buffer
int keep_alive;
NMEM nmem;
WRBUF wrbuf;
+ yaz_timing_t yt;
struct http_request *request;
struct http_response *response;
struct http_channel *next; // for freelist