in pkg/accesslog/common/connection.go [280:312]
func (c *ConnectionManager) connectionPostHandle(connection *ConnectionInfo, event events.Event) {
if connection == nil {
return
}
switch e := event.(type) {
case *CloseEventWithNotify:
connection.MarkDeletable = true
case events.SocketDetail:
tlsMode := connection.RPCConnection.TlsMode
protocol := connection.RPCConnection.Protocol
if e.GetSSL() == 1 && connection.RPCConnection.TlsMode == v3.AccessLogConnectionTLSMode_Plain {
tlsMode = v3.AccessLogConnectionTLSMode_TLS
}
if !connection.ProtocolBreak && e.GetProtocol() != enums.ConnectionProtocolUnknown &&
connection.RPCConnection.Protocol == v3.AccessLogProtocolType_TCP {
switch e.GetProtocol() {
case enums.ConnectionProtocolHTTP:
protocol = v3.AccessLogProtocolType_HTTP_1
case enums.ConnectionProtocolHTTP2:
protocol = v3.AccessLogProtocolType_HTTP_2
}
}
if connection.ProtocolBreak && connection.RPCConnection.Protocol != v3.AccessLogProtocolType_TCP {
protocol = v3.AccessLogProtocolType_TCP
}
c.rebuildRPCConnectionWithTLSModeAndProtocol(connection, tlsMode, protocol)
}
// notify all flush listeners the connection is ready to flush
for _, flush := range c.flushListeners {
flush.ReadyToFlushConnection(connection, event)
}
}