MCPcopy Index your code
hub / github.com/keploy/keploy / CreateLengthPrefixedMessageFromPayload

Function CreateLengthPrefixedMessageFromPayload

pkg/http2.go:769–790  ·  view source on GitHub ↗

CreateLengthPrefixedMessageFromPayload creates a GrpcLengthPrefixedMessage from raw payload data

(data []byte)

Source from the content-addressed store, hash-verified

767
768// CreateLengthPrefixedMessageFromPayload creates a GrpcLengthPrefixedMessage from raw payload data
769func CreateLengthPrefixedMessageFromPayload(data []byte) models.GrpcLengthPrefixedMessage {
770 msg := models.GrpcLengthPrefixedMessage{}
771
772 // If the body is not length prefixed, we return the default value.
773 if len(data) < 5 {
774 return msg
775 }
776
777 // The first byte is the compression flag.
778 msg.CompressionFlag = uint(data[0])
779
780 // The next 4 bytes are message length.
781 msg.MessageLength = binary.BigEndian.Uint32(data[1:5])
782
783 // The payload could be empty. We only parse it if it is present.
784 if len(data) > 5 {
785 // Use protoscope to decode the message.
786 msg.DecodedData = protoscope.Write(data[5:], protoscope.WriterOptions{})
787 }
788
789 return msg
790}
791
792// CreatePayloadFromLengthPrefixedMessage converts a GrpcLengthPrefixedMessage to raw payload bytes
793func CreatePayloadFromLengthPrefixedMessage(msg models.GrpcLengthPrefixedMessage) ([]byte, error) {

Callers 1

Calls 1

WriteMethod · 0.65

Tested by

no test coverage detected