// happen more frequently than the requests for connection / close.
handleSocketSessionData(dataFromTunnel);
} catch (InvalidProtocolBufferException e) {
// See if this is request.
SocketSessionRequest request = null;
SocketSessionReply.Builder replyBuilder = null;
try {
request =
sdcKeysManager.getSessionEncryption().getFrom(frameInfo,
new SessionEncryption.Parse<SocketSessionRequest>() {
public SocketSessionRequest parse(ByteString s)
throws InvalidProtocolBufferException {
return SocketSessionRequest.parseFrom(s);
}
});
replyBuilder = SocketSessionReply.newBuilder()
.setSocketHandle(request.getSocketHandle())
.setVerb(request.getVerb())
.setHostname(request.getHostname())
.setPort(request.getPort());
long start = this.clock.currentTimeMillis();
handleSocketSessionRequest(request, replyBuilder);
replyBuilder.setLatency(this.clock.currentTimeMillis() - start);
SocketSessionReply reply = replyBuilder.build();