diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/c/include/unit/unit-wasm.h | 1 | ||||
-rw-r--r-- | src/c/libunit-wasm.c | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/c/include/unit/unit-wasm.h b/src/c/include/unit/unit-wasm.h index f698c97..48079b1 100644 --- a/src/c/include/unit/unit-wasm.h +++ b/src/c/include/unit/unit-wasm.h @@ -238,6 +238,7 @@ extern size_t luw_get_response_data_size(const luw_ctx_t *ctx); extern int luw_mem_writep(luw_ctx_t *ctx, const char *fmt, ...); extern size_t luw_mem_writep_data(luw_ctx_t *ctx, const u8 *src, size_t size); extern void luw_req_buf_append(luw_ctx_t *ctx, const u8 *src); +extern void luw_req_buf_copy(luw_ctx_t *ctx, const u8 *src); extern size_t luw_mem_fill_buf_from_req(luw_ctx_t *ctx, size_t from); extern void luw_mem_reset(luw_ctx_t *ctx); extern void luw_http_set_response_status(luw_http_status_t status); diff --git a/src/c/libunit-wasm.c b/src/c/libunit-wasm.c index 28d5906..fdf9499 100644 --- a/src/c/libunit-wasm.c +++ b/src/c/libunit-wasm.c @@ -304,6 +304,17 @@ void luw_req_buf_append(luw_ctx_t *ctx, const u8 *src) ctx->req->total_content_sent = req->total_content_sent; } +/* Copy data from the request to the previously setup request_buffer. */ +void luw_req_buf_copy(luw_ctx_t *ctx, const u8 *src) +{ + struct luw_req *req = (struct luw_req *)src; + + memcpy(ctx->reqp + ctx->req->content_off, src + req->content_off, + req->request_size); + ctx->req->content_sent = req->content_sent; + ctx->req->total_content_sent = req->total_content_sent; +} + /* * Convenience function to fill the response buffer with data from * the request buffer. |