コード例 #1
0
ファイル: smoke_downstream.c プロジェクト: Bagarre/RProxy
static void
send_chunk(evhtp_request_t * req, const char* data, const char* hdrfmt, size_t len) {
    evbuf_t * buf = evbuffer_new();
    evbuf_t * output;

    /* Add the data to the output */
    evbuffer_add(buf, data, strlen(data));
    output = bufferevent_get_output(req->conn->bev);
    evbuffer_add_printf(output, hdrfmt, len);

    /* Send the buffer */
    evhtp_send_reply_body(req, buf);
    evbuffer_add(output, "\r\n", 2);

    /* Drain the buffer and free it */
    evbuffer_drain(buf, -1);
    evbuffer_free(buf);
}
コード例 #2
0
ファイル: evhtp_s.cpp プロジェクト: austgl/libhttp
void
evhtp_send_reply_chunk(evhtp_request_t * request, evbuf_t * buf) {
    evbuf_t * output;

    output = bufferevent_get_output(request->conn->bev);

    if (evbuffer_get_length(buf) == 0) {
        return;
    }
    if (request->chunked) {
        evbuffer_add_printf(output, "%x\r\n",
                            (unsigned)evbuffer_get_length(buf));
    }
    evhtp_send_reply_body(request, buf);
    if (request->chunked) {
        evbuffer_add(output, "\r\n", 2);
    }
    bufferevent_flush(request->conn->bev, EV_WRITE, BEV_FLUSH);
}