Tunneled data are now stored in RAW_DATA blocks. The H1 multiplexer must be
able to send them. h1_make_tunnel() is responsible to do so.
For the H1 multiplexer, there is no difference with HTTP data: both are sent
verbatim. Only the ability to handle the new type is added here. No producer
emits such block yet so h1_make_tunnel() relies on htx_is_data_type() for
now. But once all changes done, this will have to be modified to accept
RAW_DATA blocks only.
*/
if (!b_data(&h1c->obuf) &&
htx_nbblks(htx) == 1 &&
- htx_get_blk_type(blk) == HTX_BLK_DATA &&
+ htx_is_data_type(htx_get_blk_type(blk)) &&
htx_get_blksz(blk) == count &&
b_size(&h1c->obuf) == b_size(buf)) {
void *old_area;
sz = htx_get_blksz(blk);
vlen = sz;
- if (type == HTX_BLK_DATA) {
+ if (htx_is_data_type(type)) {
if (vlen > count) {
/* Get the maximum amount of data we can xferred */
vlen = count;