readClientPrefaceString() — netty Function Reference
Architecture documentation for the readClientPrefaceString() function in Http2ConnectionHandler.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 52c5c05c_e3b5_8aff_b159_87aaed064f8f["readClientPrefaceString()"] 83642a58_aebe_1c6a_ae68_9c2017752662["PrefaceDecoder"] 52c5c05c_e3b5_8aff_b159_87aaed064f8f -->|defined in| 83642a58_aebe_1c6a_ae68_9c2017752662 7a6947b9_edc8_6ed8_f6ad_f257a2519043["decode()"] 7a6947b9_edc8_6ed8_f6ad_f257a2519043 -->|calls| 52c5c05c_e3b5_8aff_b159_87aaed064f8f style 52c5c05c_e3b5_8aff_b159_87aaed064f8f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java lines 302–336
private boolean readClientPrefaceString(ByteBuf in) throws Http2Exception {
if (clientPrefaceString == null) {
return true;
}
int prefaceRemaining = clientPrefaceString.readableBytes();
int bytesRead = min(in.readableBytes(), prefaceRemaining);
// If the input so far doesn't match the preface, break the connection.
if (bytesRead == 0 || !ByteBufUtil.equals(in, in.readerIndex(),
clientPrefaceString, clientPrefaceString.readerIndex(),
bytesRead)) {
int maxSearch = 1024; // picked because 512 is too little, and 2048 too much
int http1Index =
ByteBufUtil.indexOf(HTTP_1_X_BUF, in.slice(in.readerIndex(), min(in.readableBytes(), maxSearch)));
if (http1Index != -1) {
String chunk = in.toString(in.readerIndex(), http1Index - in.readerIndex(), CharsetUtil.US_ASCII);
throw connectionError(PROTOCOL_ERROR, "Unexpected HTTP/1.x request: %s", chunk);
}
String receivedBytes = hexDump(in, in.readerIndex(),
min(in.readableBytes(), clientPrefaceString.readableBytes()));
throw connectionError(PROTOCOL_ERROR, "HTTP/2 client preface string missing or corrupt. " +
"Hex dump for received bytes: %s", receivedBytes);
}
in.skipBytes(bytesRead);
clientPrefaceString.skipBytes(bytesRead);
if (!clientPrefaceString.isReadable()) {
// Entire preface has been read.
clientPrefaceString.release();
clientPrefaceString = null;
return true;
}
return false;
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does readClientPrefaceString() do?
readClientPrefaceString() is a function in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java.
Where is readClientPrefaceString() defined?
readClientPrefaceString() is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java at line 302.
What calls readClientPrefaceString()?
readClientPrefaceString() is called by 1 function(s): decode.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free