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

Method encodeToFrames

src/main/java/core/packetproxy/http2/Http2.java:117–136  ·  view source on GitHub ↗
(byte[] data, HpackEncoder encoder)

Source from the content-addressed store, hash-verified

115 }
116
117 private byte[] encodeToFrames(byte[] data, HpackEncoder encoder) throws Exception {
118 ByteArrayOutputStream out = new ByteArrayOutputStream();
119 Http http = Http.create(data);
120 int flags = Integer.valueOf(http.getFirstHeader("X-PacketProxy-HTTP2-Flags"));
121 if (http.getBody() != null && http.getBody().length > 0) {
122
123 http.updateHeader("X-PacketProxy-HTTP2-Flags",
124 String.valueOf(flags & 0xff & ~HeadersFrame.FLAG_END_STREAM));
125 HeadersFrame headersFrame = new HeadersFrame(http);
126 out.write(headersFrame.toByteArrayWithoutExtra(encoder));
127 DataFrame dataFrame = new DataFrame(http);
128 out.write(dataFrame.toByteArrayWithoutExtra());
129 } else {
130
131 http.updateHeader("X-PacketProxy-HTTP2-Flags", String.valueOf(flags & 0xff | HeadersFrame.FLAG_END_STREAM));
132 HeadersFrame headersFrame = new HeadersFrame(http);
133 out.write(headersFrame.toByteArrayWithoutExtra(encoder));
134 }
135 return out.toByteArray();
136 }
137
138 /* key: streamId, value: groupId */
139 private Map<Long, Long> groupMap = new HashMap<>();

Callers 2

Calls 8

createMethod · 0.95
getFirstHeaderMethod · 0.95
getBodyMethod · 0.95
updateHeaderMethod · 0.95
writeMethod · 0.65
toByteArrayMethod · 0.45

Tested by

no test coverage detected