if (tl > fs)
goto fail;
- htx_set_blk_value_len(blk, tl);
- htx->data += vl+2;
+ htx_change_blk_value_len(htx, blk, tl);
*(char *)(htx_get_blk_ptr(htx, blk) + bs + 0) = ';';
*(char *)(htx_get_blk_ptr(htx, blk) + bs + 1) = ' ';
memcpy(htx_get_blk_ptr(htx, blk) + bs + 2, list[ck].v.ptr, vl);
}
/* Update the block content and its len */
memmove(start, start+len, v.len-len);
- htx_set_blk_value_len(blk, v.len-len);
-
- /* Update HTX msg */
- htx->data -= len;
+ htx_change_blk_value_len(htx, blk, v.len-len);
/* Finally update the ctx */
ctx->value.ptr = start;
offset -= sz;
continue;
}
- if (type == HTX_BLK_DATA) {
- htx_set_blk_value_len(blk, offset);
- htx->data -= (sz - offset);
-
- if (blk->addr+sz == htx->tail_addr)
- htx->tail_addr -= offset;
- else if (blk->addr+sz == htx->head_addr)
- htx->head_addr -= offset;
- }
+ if (type == HTX_BLK_DATA)
+ htx_change_blk_value_len(htx, blk, offset);
offset = 0;
}
while (blk)
/* Append data and update the block itself */
ptr = htx_get_blk_ptr(htx, tailblk);
memcpy(ptr+sz, data.ptr, len);
- htx_set_blk_value_len(tailblk, sz+len);
-
- /* Update HTTP message */
- htx->data += len;
- if (tailblk->addr+sz == htx->tail_addr)
- htx->tail_addr += len;
- else if (tailblk->addr+sz == htx->head_addr)
- htx->head_addr += len;
+ htx_change_blk_value_len(htx, tailblk, sz+len);
if (data.len == len) {
blk = tailblk;
/* Append data and update the block itself */
ptr = htx_get_blk_ptr(htx, tailblk);
memcpy(ptr + sz, data.ptr, len);
- htx_set_blk_value_len(tailblk, sz + len);
-
- /* Update HTTP message */
- htx->data += len;
- if (tailblk->addr+sz == htx->tail_addr)
- htx->tail_addr += len;
- else if (tailblk->addr+sz == htx->head_addr)
- htx->head_addr += len;
+ htx_change_blk_value_len(htx, tailblk, sz+len);
BUG_ON((int32_t)htx->tail_addr < 0);
BUG_ON((int32_t)htx->head_addr < 0);
hdr_end = (preserve_hdr ? del_from : hdr_beg);
}
if ((hdr_end - hdr_beg) != ctx.value.len) {
- if (hdr_beg != hdr_end) {
- htx_set_blk_value_len(ctx.blk, hdr_end - hdr_beg);
- htx->data -= ctx.value.len - (hdr_end - hdr_beg);
- }
+ if (hdr_beg != hdr_end)
+ htx_change_blk_value_len(htx, ctx.blk, hdr_end - hdr_beg);
else
http_remove_header(htx, &ctx);
}
next += stripped_before;
hdr_end += stripped_before;
- htx_set_blk_value_len(ctx.blk, hdr_end - hdr_beg);
- htx->data -= ctx.value.len - (hdr_end - hdr_beg);
+ htx_change_blk_value_len(htx, ctx.blk, hdr_end - hdr_beg);
ctx.value.len = hdr_end - hdr_beg;
}