[UH_HTTP_MSG_GET] = "GET",
[UH_HTTP_MSG_POST] = "POST",
[UH_HTTP_MSG_HEAD] = "HEAD",
+ [UH_HTTP_MSG_OPTIONS] = "OPTIONS",
};
void uh_http_header(struct client *cl, int code, const char *summary)
const char *enc = "Transfer-Encoding: chunked\r\n";
const char *conn;
+ cl->http_code = code;
+
if (!uh_use_chunked(cl))
enc = "";
static void client_close(struct client *cl)
{
+ if (cl->refcount) {
+ cl->state = CLIENT_STATE_CLEANUP;
+ return;
+ }
+
client_done = true;
n_clients--;
uh_dispatch_done(cl);
{
struct ustream *s = cl->us;
- if (!s->write_error) {
+ if (!s->write_error && cl->state != CLIENT_STATE_CLEANUP) {
if (cl->state == CLIENT_STATE_DATA)
return;