MqttConnectVariableHeader() — netty Function Reference
Architecture documentation for the MqttConnectVariableHeader() function in MqttDecoder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 011991cc_195a_5e24_a498_8df8267d825e["MqttConnectVariableHeader()"] c4faa729_e212_a3dd_9d90_3e8fd908d755["MqttDecoder"] 011991cc_195a_5e24_a498_8df8267d825e -->|defined in| c4faa729_e212_a3dd_9d90_3e8fd908d755 98ef5a77_12ad_c763_de85_bb9068059363["decodeString()"] 011991cc_195a_5e24_a498_8df8267d825e -->|calls| 98ef5a77_12ad_c763_de85_bb9068059363 c329612b_da71_6e39_b716_e4f7dc59569d["decodeMsbLsb()"] 011991cc_195a_5e24_a498_8df8267d825e -->|calls| c329612b_da71_6e39_b716_e4f7dc59569d 8cad50bc_08ed_5075_a0f7_de30f00ba977["decodeProperties()"] 011991cc_195a_5e24_a498_8df8267d825e -->|calls| 8cad50bc_08ed_5075_a0f7_de30f00ba977 style 011991cc_195a_5e24_a498_8df8267d825e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java lines 314–369
private MqttConnectVariableHeader decodeConnectionVariableHeader(
ChannelHandlerContext ctx,
ByteBuf buffer) {
final Result<String> protoString = decodeString(buffer);
int numberOfBytesConsumed = protoString.numberOfBytesConsumed;
final byte protocolLevel = buffer.readByte();
numberOfBytesConsumed += 1;
MqttVersion version = MqttVersion.fromProtocolNameAndLevel(protoString.value, protocolLevel);
MqttCodecUtil.setMqttVersion(ctx, version);
final int b1 = buffer.readUnsignedByte();
numberOfBytesConsumed += 1;
final int keepAlive = decodeMsbLsb(buffer);
numberOfBytesConsumed += 2;
final boolean hasUserName = (b1 & 0x80) == 0x80;
final boolean hasPassword = (b1 & 0x40) == 0x40;
final boolean willRetain = (b1 & 0x20) == 0x20;
final int willQos = (b1 & 0x18) >> 3;
final boolean willFlag = (b1 & 0x04) == 0x04;
final boolean cleanSession = (b1 & 0x02) == 0x02;
if (version == MqttVersion.MQTT_3_1_1 || version == MqttVersion.MQTT_5) {
final boolean zeroReservedFlag = (b1 & 0x01) == 0x0;
if (!zeroReservedFlag) {
// MQTT v3.1.1: The Server MUST validate that the reserved flag in the CONNECT Control Packet is
// set to zero and disconnect the Client if it is not zero.
// See https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc385349230
throw new DecoderException("non-zero reserved flag");
}
}
final MqttProperties properties;
if (version == MqttVersion.MQTT_5) {
final Result<MqttProperties> propertiesResult = decodeProperties(buffer);
properties = propertiesResult.value;
numberOfBytesConsumed += propertiesResult.numberOfBytesConsumed;
} else {
properties = MqttProperties.NO_PROPERTIES;
}
bytesRemainingInVariablePart -= numberOfBytesConsumed;
return new MqttConnectVariableHeader(
version.protocolName(),
version.protocolLevel(),
hasUserName,
hasPassword,
willRetain,
willQos,
willFlag,
cleanSession,
keepAlive,
properties);
}
Domain
Subdomains
Source
Frequently Asked Questions
What does MqttConnectVariableHeader() do?
MqttConnectVariableHeader() is a function in the netty codebase, defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java.
Where is MqttConnectVariableHeader() defined?
MqttConnectVariableHeader() is defined in codec-mqtt/src/main/java/io/netty/handler/codec/mqtt/MqttDecoder.java at line 314.
What does MqttConnectVariableHeader() call?
MqttConnectVariableHeader() calls 3 function(s): decodeMsbLsb, decodeProperties, decodeString.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free