return nblk;
}
-
/* Returns the position of the first block in the HTX message <htx>. -1 means
* the first block is unset or the HTS is empty.
*/
struct ist v;
switch (type) {
- case HTX_BLK_UNUSED:
- break;
-
case HTX_BLK_DATA:
v = htx_get_blk_value(htx, blk);
v = istadv(v, offset);
struct ist v;
next = htx_get_next_blk(htx, blk);
- while (next && htx_get_blk_type(next) == HTX_BLK_UNUSED)
- next = htx_get_next_blk(htx, next);
if (!(st->flags & COMP_STATE_PROCESSING))
goto consume;
blk = htx_get_next_blk(htx, blk);
}
while (blk) {
- if (htx_get_blk_type(blk) == HTX_BLK_UNUSED)
- goto next;
- else if (htx_get_blk_type(blk) != HTX_BLK_DATA)
+ if (htx_get_blk_type(blk) != HTX_BLK_DATA)
break;
data += htx_get_blksz(blk);
- next:
blk = htx_get_next_blk(htx, blk);
}
return data;
switch (type) {
case HTX_BLK_EOH:
goto end_loop;
- case HTX_BLK_UNUSED:
- break;
case HTX_BLK_REQ_SL:
BUG_ON(sl); /* Only one start-line expected */
for (blk = htx_get_head_blk(htx); blk; blk = htx_get_next_blk(htx, blk)) {
type = htx_get_blk_type(blk);
- if (type == HTX_BLK_UNUSED)
- continue;
-
if (type == HTX_BLK_EOH)
break;
for (blk = htx_get_head_blk(htx); blk; blk = htx_get_next_blk(htx, blk)) {
type = htx_get_blk_type(blk);
- if (type == HTX_BLK_UNUSED)
- continue;
-
if (type == HTX_BLK_EOT)
break;
vlen = sz;
switch (type) {
- case HTX_BLK_UNUSED:
- break;
-
case HTX_BLK_DATA:
v = htx_get_blk_value(htx, blk);
vlen = v.len;
vlen = sz;
switch (type) {
- case HTX_BLK_UNUSED:
- break;
-
case HTX_BLK_DATA:
v = htx_get_blk_value(htx, blk);
vlen = v.len;
struct ist v;
switch (type) {
- case HTX_BLK_UNUSED:
- break;
-
case HTX_BLK_DATA:
v = htx_get_blk_value(htx, blk);
v = istadv(v, offset);
uint32_t sz = htx_get_blksz(blk);
switch (type) {
- case HTX_BLK_UNUSED:
- break;
-
case HTX_BLK_DATA:
if (len < sz) {
/* don't discard whole blk, only part of it
uint32_t sz = htx_get_blksz(blk);
enum htx_blk_type type = htx_get_blk_type(blk);
- /* Ignore unused block */
- if (type == HTX_BLK_UNUSED)
- goto next;
-
if (sz > count) {
if (type == HTX_BLK_DATA) {
htx_cut_data_blk(htx, blk, count);
}
count -= sz;
htxret.ret += sz;
- next:
blk = htx_remove_blk(htx, blk);
}
htxret.blk = blk;
/* Ignore unused block */
type = htx_get_blk_type(blk);
- if (type == HTX_BLK_UNUSED)
- continue;
if ((flags & HTX_XFER_HDRS_ONLY) &&
type != HTX_BLK_REQ_SL && type != HTX_BLK_RES_SL &&
for (blk = htx_get_head_blk(src); blk; blk = htx_get_next_blk(src, blk)) {
type = htx_get_blk_type(blk);
-
- if (type == HTX_BLK_UNUSED)
- continue;
-
blksz = htx_get_blksz(blk);
newblk = htx_add_blk(dst, type, blksz);
if (!newblk)
blk = htx_get_head_blk(htx); // returns the SL that we skip
for (blk = htx_get_next_blk(htx, blk); blk; blk = htx_get_next_blk(htx, blk)) {
type = htx_get_blk_type(blk);
-
- if (type == HTX_BLK_UNUSED)
- continue;
-
if (type != HTX_BLK_HDR)
break;
goto end;
type = htx_get_blk_type(blk);
sz = htx_get_blksz(blk);
- if (type == HTX_BLK_UNUSED) {
- htx_remove_blk(htx, blk);
- continue;
- }
if (type != HTX_BLK_REQ_SL || sz > count)
goto error;
break;
type = htx_get_blk_type(blk);
sz = htx_get_blksz(blk);
-
- if (type == HTX_BLK_UNUSED) {
- htx_remove_blk(htx, blk);
- continue;
- }
if (type != HTX_BLK_RES_SL || sz > count)
goto error;
break;
h1m->state = H1_MSG_LAST_LF;
break; /* Do not consume this block */
}
- else if (type == HTX_BLK_UNUSED)
- goto nextblk;
else
goto error;
type = htx_get_blk_type(blk);
sz = htx_get_blksz(blk);
-
- if (type == HTX_BLK_UNUSED)
- continue;
if (type != HTX_BLK_EOH || sz > count)
goto error;
break;
h1m->state = H1_MSG_TRAILERS;
break;
}
- else if (type == HTX_BLK_UNUSED)
- goto nextblk;
else
goto error;
if (!h1_format_htx_data(v, &outbuf, 0))
goto full;
}
- else if (type == HTX_BLK_UNUSED)
- goto nextblk;
else
goto error;
}
h1m->state = H1_MSG_DONE;
}
- else if (type == HTX_BLK_UNUSED)
- goto nextblk;
else
goto error;
for (blk = htx_get_head_blk(htx); blk; blk = htx_get_next_blk(htx, blk)) {
type = htx_get_blk_type(blk);
- if (type == HTX_BLK_UNUSED)
- continue;
-
if (type == HTX_BLK_EOH)
break;
for (blk = htx_get_head_blk(htx); blk; blk = htx_get_next_blk(htx, blk)) {
type = htx_get_blk_type(blk);
- if (type == HTX_BLK_UNUSED)
- continue;
-
if (type == HTX_BLK_EOH)
break;
for (blk = htx_get_head_blk(htx); blk; blk = htx_get_next_blk(htx, blk)) {
type = htx_get_blk_type(blk);
- if (type == HTX_BLK_UNUSED)
- continue;
-
if (type == HTX_BLK_EOT)
break;
if (type == HTX_BLK_TLR) {