MCPcopy Create free account
hub / github.com/DeNA/PacketProxy / decodeFromFrames

Method decodeFromFrames

src/main/java/core/packetproxy/http2/Http2.java:84–105  ·  view source on GitHub ↗
(byte[] frames)

Source from the content-addressed store, hash-verified

82 }
83
84 private byte[] decodeFromFrames(byte[] frames) throws Exception {
85 ByteArrayOutputStream out = new ByteArrayOutputStream();
86 for (Frame frame : FrameUtils.parseFrames(frames)) {
87
88 if (frame instanceof HeadersFrame) {
89
90 HeadersFrame headersFrame = (HeadersFrame) frame;
91 out.write(headersFrame.getHttp());
92 } else if (frame instanceof DataFrame) {
93
94 DataFrame dataFrame = (DataFrame) frame;
95 out.write(dataFrame.getPayload());
96 }
97 }
98 Http http = Http.create(out.toByteArray());
99 int flags = Integer.valueOf(http.getFirstHeader("X-PacketProxy-HTTP2-Flags"));
100 if (http.getBody() == null || http.getBody().length == 0) {
101
102 http.updateHeader("X-PacketProxy-HTTP2-Flags", String.valueOf(flags & 0xff | HeadersFrame.FLAG_END_STREAM));
103 }
104 return http.toByteArray();
105 }
106
107 @Override
108 protected byte[] encodeClientRequestToFrames(byte[] http) throws Exception {

Calls 10

parseFramesMethod · 0.95
getHttpMethod · 0.95
createMethod · 0.95
getFirstHeaderMethod · 0.95
getBodyMethod · 0.95
updateHeaderMethod · 0.95
toByteArrayMethod · 0.95
getPayloadMethod · 0.80
writeMethod · 0.65
toByteArrayMethod · 0.45

Tested by

no test coverage detected