unmask() — netty Function Reference
Architecture documentation for the unmask() function in WebSocket08FrameDecoder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD eae6aaf4_a2cd_080e_53f7_5c3107c8c81a["unmask()"] c9b44ce3_48da_97b4_c171_21f4f8367ad8["WebSocket08FrameDecoder"] eae6aaf4_a2cd_080e_53f7_5c3107c8c81a -->|defined in| c9b44ce3_48da_97b4_c171_21f4f8367ad8 0cc1f80d_2de8_eba7_1c1b_044be6cac6ba["decode()"] 0cc1f80d_2de8_eba7_1c1b_044be6cac6ba -->|calls| eae6aaf4_a2cd_080e_53f7_5c3107c8c81a style eae6aaf4_a2cd_080e_53f7_5c3107c8c81a fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder.java lines 392–424
private void unmask(ByteBuf frame) {
int i = frame.readerIndex();
int end = frame.writerIndex();
ByteOrder order = frame.order();
int intMask = mask;
if (intMask == 0) {
// If the mask is 0 we can just return directly as the XOR operations will just produce the same value.
return;
}
// Avoid sign extension on widening primitive conversion
long longMask = intMask & 0xFFFFFFFFL;
longMask |= longMask << 32;
for (int lim = end - 7; i < lim; i += 8) {
frame.setLong(i, frame.getLong(i) ^ longMask);
}
if (i < end - 3) {
frame.setInt(i, frame.getInt(i) ^ (int) longMask);
i += 4;
}
if (order == ByteOrder.LITTLE_ENDIAN) {
intMask = Integer.reverseBytes(intMask);
}
int maskOffset = 0;
for (; i < end; i++) {
frame.setByte(i, frame.getByte(i) ^ WebSocketUtil.byteAtIndex(intMask, maskOffset++ & 3));
}
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does unmask() do?
unmask() is a function in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder.java.
Where is unmask() defined?
unmask() is defined in codec-http/src/main/java/io/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder.java at line 392.
What calls unmask()?
unmask() 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