func()

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)
	}
}