SocksInitRequestDecoder Class — netty Architecture
Architecture documentation for the SocksInitRequestDecoder class in SocksInitRequestDecoder.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD eb14949c_0997_e4e8_ab21_876b722c6daa["SocksInitRequestDecoder"] e1d67b36_157c_a145_60ff_9e2bbbcbc3d4["SocksInitRequestDecoder.java"] eb14949c_0997_e4e8_ab21_876b722c6daa -->|defined in| e1d67b36_157c_a145_60ff_9e2bbbcbc3d4 735d3f0f_6ee8_8e17_6a27_ea2aba4f6c10["SocksInitRequestDecoder()"] eb14949c_0997_e4e8_ab21_876b722c6daa -->|method| 735d3f0f_6ee8_8e17_6a27_ea2aba4f6c10 edfa33e2_a9cb_7087_66cd_9de08e5caccc["decode()"] eb14949c_0997_e4e8_ab21_876b722c6daa -->|method| edfa33e2_a9cb_7087_66cd_9de08e5caccc
Relationship Graph
Source Code
codec-socks/src/main/java/io/netty/handler/codec/socks/SocksInitRequestDecoder.java lines 32–74
public class SocksInitRequestDecoder extends ReplayingDecoder<State> {
public SocksInitRequestDecoder() {
super(State.CHECK_PROTOCOL_VERSION);
}
@Override
protected void decode(ChannelHandlerContext ctx, ByteBuf byteBuf, List<Object> out) throws Exception {
switch (state()) {
case CHECK_PROTOCOL_VERSION: {
if (byteBuf.readByte() != SocksProtocolVersion.SOCKS5.byteValue()) {
out.add(SocksCommonUtils.UNKNOWN_SOCKS_REQUEST);
break;
}
checkpoint(State.READ_AUTH_SCHEMES);
}
case READ_AUTH_SCHEMES: {
final byte authSchemeNum = byteBuf.readByte();
final List<SocksAuthScheme> authSchemes;
if (authSchemeNum > 0) {
authSchemes = new ArrayList<SocksAuthScheme>(authSchemeNum);
for (int i = 0; i < authSchemeNum; i++) {
authSchemes.add(SocksAuthScheme.valueOf(byteBuf.readByte()));
}
} else {
authSchemes = Collections.emptyList();
}
out.add(new SocksInitRequest(authSchemes));
break;
}
default: {
throw new Error("Unexpected request decoder type: " + state());
}
}
ctx.pipeline().remove(this);
}
@UnstableApi
public enum State {
CHECK_PROTOCOL_VERSION,
READ_AUTH_SCHEMES
}
}
Source
Frequently Asked Questions
What is the SocksInitRequestDecoder class?
SocksInitRequestDecoder is a class in the netty codebase, defined in codec-socks/src/main/java/io/netty/handler/codec/socks/SocksInitRequestDecoder.java.
Where is SocksInitRequestDecoder defined?
SocksInitRequestDecoder is defined in codec-socks/src/main/java/io/netty/handler/codec/socks/SocksInitRequestDecoder.java at line 32.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free