Wireshark mailing list archives

[Lua workaround] gRPC dissector does not start Protobuf sub-dissector when capture is incomplete


From: Alexander Petrossian <paf () yandex ru>
Date: Thu, 23 Dec 2021 13:49:35 +0300

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...
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: