You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need new header data callbacks to use when library users are interested in seeing raw header data. There are 2 use cases that we need to handle.
In the first use case, the user cares only about complete (potentially buffered) chunks of data. Normally, all request headers arrive at once in a single buffer, and we can pass the buffer directly to the user. When fragmentation occurs, we will be forced to buffer. But, even in this use case, the callback can potentially be invoked twice. Once for the first header batch, and then the second time if trailing headers are included.
A further complication is if the user is expecting LibHTP to pre-process headers, reassembling the folded ones, and combining headers with the same names. We have a similar feature today.
In the second use case, we send raw header data to the user as we get it ourselves. This is easy to implement, and allows for fully streaming inspection. See #27 for a further discussion.
The text was updated successfully, but these errors were encountered:
We need new header data callbacks to use when library users are interested in seeing raw header data. There are 2 use cases that we need to handle.
In the first use case, the user cares only about complete (potentially buffered) chunks of data. Normally, all request headers arrive at once in a single buffer, and we can pass the buffer directly to the user. When fragmentation occurs, we will be forced to buffer. But, even in this use case, the callback can potentially be invoked twice. Once for the first header batch, and then the second time if trailing headers are included.
A further complication is if the user is expecting LibHTP to pre-process headers, reassembling the folded ones, and combining headers with the same names. We have a similar feature today.
In the second use case, we send raw header data to the user as we get it ourselves. This is easy to implement, and allows for fully streaming inspection. See #27 for a further discussion.
The text was updated successfully, but these errors were encountered: