Home / Function/ unmask() — netty Function Reference

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));
        }
    }

Subdomains

Called By

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