doHandshake() — netty Function Reference
Architecture documentation for the doHandshake() function in AbstractSslEngineBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 1ca4381f_12c1_e8ea_cbe9_ec019815c591["doHandshake()"] 2049e1f3_c0b4_240c_1d58_95f03c8142de["AbstractSslEngineBenchmark"] 1ca4381f_12c1_e8ea_cbe9_ec019815c591 -->|defined in| 2049e1f3_c0b4_240c_1d58_95f03c8142de 0d7f838d_cbb0_efbc_27ab_309b508e23f1["runDelegatedTasks()"] 1ca4381f_12c1_e8ea_cbe9_ec019815c591 -->|calls| 0d7f838d_cbb0_efbc_27ab_309b508e23f1 7ac355cb_b1e1_a0f3_b399_b00d8cfe99a2["isHandshakeFinished()"] 1ca4381f_12c1_e8ea_cbe9_ec019815c591 -->|calls| 7ac355cb_b1e1_a0f3_b399_b00d8cfe99a2 style 1ca4381f_12c1_e8ea_cbe9_ec019815c591 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineBenchmark.java lines 190–258
protected final boolean doHandshake() throws SSLException {
clientEngine.beginHandshake();
serverEngine.beginHandshake();
SSLEngineResult clientResult = null;
SSLEngineResult serverResult = null;
boolean clientHandshakeFinished = false;
boolean serverHandshakeFinished = false;
do {
int cTOsPos = cTOs.position();
int sTOcPos = sTOc.position();
if (!clientHandshakeFinished) {
clientResult = clientEngine.wrap(empty, cTOs);
runDelegatedTasks(clientResult, clientEngine);
assert empty.remaining() == clientResult.bytesConsumed();
assert cTOs.position() - cTOsPos == clientResult.bytesProduced();
clientHandshakeFinished = isHandshakeFinished(clientResult);
}
if (!serverHandshakeFinished) {
serverResult = serverEngine.wrap(empty, sTOc);
runDelegatedTasks(serverResult, serverEngine);
assert empty.remaining() == serverResult.bytesConsumed();
assert sTOc.position() - sTOcPos == serverResult.bytesProduced();
serverHandshakeFinished = isHandshakeFinished(serverResult);
}
cTOs.flip();
sTOc.flip();
cTOsPos = cTOs.position();
sTOcPos = sTOc.position();
if (!clientHandshakeFinished) {
int clientAppReadBufferPos = clientAppReadBuffer.position();
clientResult = clientEngine.unwrap(sTOc, clientAppReadBuffer);
runDelegatedTasks(clientResult, clientEngine);
assert sTOc.position() - sTOcPos == clientResult.bytesConsumed();
assert clientAppReadBuffer.position() - clientAppReadBufferPos == clientResult.bytesProduced();
clientHandshakeFinished = isHandshakeFinished(clientResult);
} else {
assert !sTOc.hasRemaining();
}
if (!serverHandshakeFinished) {
int serverAppReadBufferPos = serverAppReadBuffer.position();
serverResult = serverEngine.unwrap(cTOs, serverAppReadBuffer);
runDelegatedTasks(serverResult, serverEngine);
assert cTOs.position() - cTOsPos == serverResult.bytesConsumed();
assert serverAppReadBuffer.position() - serverAppReadBufferPos == serverResult.bytesProduced();
serverHandshakeFinished = isHandshakeFinished(serverResult);
} else {
assert !cTOs.hasRemaining();
}
sTOc.compact();
cTOs.compact();
} while (!clientHandshakeFinished || !serverHandshakeFinished);
return clientResult.getStatus() == SSLEngineResult.Status.OK &&
serverResult.getStatus() == SSLEngineResult.Status.OK;
}
Domain
Subdomains
Source
Frequently Asked Questions
What does doHandshake() do?
doHandshake() is a function in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineBenchmark.java.
Where is doHandshake() defined?
doHandshake() is defined in microbench/src/main/java/io/netty/microbench/handler/ssl/AbstractSslEngineBenchmark.java at line 190.
What does doHandshake() call?
doHandshake() calls 2 function(s): isHandshakeFinished, runDelegatedTasks.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free