Friends, currently when gRPC plugin fails to get content-type header value it stops and does not invoke Protobuf dissector, which makes me sad:
http2_content_type = http2_get_header_value(pinfo, HTTP2_HEADER_CONTENT_TYPE, FALSE);
if (http2_content_type == NULL || http2_path == NULL) {
return; /* not continue if there is not enough grpc information */
}
Thing is, traces are more often recorded without start of communication.
And even when gRPC body is there, content-type field was compressed and can not be decompressed = http2_get_header_value returns NULL.
Could one do some workaround in Lua right now?
Somehow force gRPC hand to invoke Protobuf dissector even without content-type: application/grpc.
I’m thinking of wedging between dissectors and provide some default value of content-type or some such. But that approach seems vague. Any ideas on it or other?
Thanks in advance!
PAF
P.S. I’ve suggested a seemingly trivial untested workaround in C here
https://gitlab.com/wireshark/wireshark/-/issues/17793
Right now I’m interested in some Lua approach that we could employ without recompilings...