Philippe Antoine
6fe8bce3b0
http2: have filecontainer for both directions
5 years ago
Philippe Antoine
707f027231
protos: renaming ALPROTO_HTTP* constants
...
Having now ALPROTO_HTTP1, ALPROTO_HTTP2 and ALPROTO_HTTP
Run with 3 sed commands
git grep ALPROTO_HTTP | cut -d: -f1 | uniq |
xargs sed -i -e 's/ALPROTO_HTTP/ALPROTO_HTTP1/g'
git grep ALPROTO_HTTP12 | cut -d: -f1 | uniq |
xargs sed -i -e 's/ALPROTO_HTTP12/ALPROTO_HTTP2/g'
git grep ALPROTO_HTTP1_ANY | cut -d: -f1 | uniq |
xargs sed -i -e 's/ALPROTO_HTTP1_ANY/ALPROTO_HTTP/g'
and then running clang-format
6 years ago
Philippe Antoine
d861228214
http2: decompression for files
...
gzip and brotli decompression for files
6 years ago
Philippe Antoine
aee8e60149
rust: better panic message for missing file config
6 years ago
Juliana Fajardini
5226ba1c15
Rust: generic files definition
...
Issue: Optimization 3825
- filecontainer: add Files structure, to replace/unify SMBFiles,
NFSFiles and HTTP2Files
- smb/files: delete SMBFiles implementation
- smb/smb: replace SMBFiles with Files
- nfs/nfs: delete NFSFiles implementation, replace its former
declarations with Files' ones
- http2/http2: replace HTTP2Files with Files
- http2/mod: Delete reference to file files.rs
- http2/files: Delete
6 years ago
Victor Julien
efc9a7a398
app-layer: remove callback for completion status
...
Since the completion status was a constant for all parsers, remove the
callback logic and instead register the values themselves. This should
avoid a lot of unnecessary callback calls.
Update all parsers to take advantage of this.
6 years ago
Philippe Antoine
f574663352
http2: files inspection API fixes
...
uses right transaction id for file tracker
uses FILE_USE_DETECT for good matches with keyword startswith
6 years ago
Philippe Antoine
a63ee5adbd
http2: allow multiple size updates in one headers batch
...
cf RFC 7541 section 4.2
6 years ago
Philippe Antoine
1fd6f5bc61
http2: asymetric sizes for headers tables
...
The headers table from client to server
and the one from server to client
may have different maximum sizes
(even if both endpoints have to keep both tables)
6 years ago
Philippe Antoine
64fcba228b
http2: complete parsing of priority frames
6 years ago
Philippe Antoine
c300a859a0
http2: keep track of dynamic headers table size
...
And evict entries accordingly to maximum size
6 years ago
Philippe Antoine
b21acfbf21
http2: StreamIdReuse frame types exceptions
...
Also handles better the state so as not to revert from
HTTP2StateHalfClosedClient to HTTP2StateDataServer and not
go to final HTTP2StateClosed
6 years ago
Victor Julien
4da0d9bdea
applayer/rust: expose truncate callback
6 years ago
Philippe Antoine
6694737fcf
http2: settings from http1 upgrade
6 years ago
Philippe Antoine
7011bddf84
http2: mimic HTTP1 request from upgrade
6 years ago
Philippe Antoine
9d1b030ff0
http2: first connection upgrade from http1
6 years ago
Philippe Antoine
547d6c2d78
applayer: pass parameter to StateAlloc
...
This parameter is NULL or the pointer to the previous state
for the previous protocol in the case of a protocol change,
for instance from HTTP1 to HTTP2
This way, the new protocol can use the old protocol context.
For instance, HTTP2 mimicks the HTTP1 request, to have a HTTP2
transaction with both request and response
6 years ago
Philippe Antoine
1a88df7e88
http2: handles incomplete frames after banner
...
To signal incomplete data, we must return the number of
consumed bytes. When we get a banner and some records, we have
to take into account the number of bytes already consumed by
the banner parsing before reaching an incomplete record.
6 years ago
Jason Ish
ac93ab281d
rust/logging: allow log macros to be used by plugins
...
Fix plugin macros so they can be used by external Rust crates
such as plugins.
6 years ago
Victor Julien
4aa80ac7f6
detect/http2: fix header inspection
...
Header inspection was overwriting data that was still being
referenced by the detect engine, leading to ASAN issues.
6 years ago
Philippe Antoine
1422b18a99
http2: initial support
6 years ago