Handle item.Pair.Response.Payload is nil case in AMQP

This commit is contained in:
M. Mert Yildiran 2022-07-14 13:51:06 +03:00
parent d4b9fea5a7
commit 5457bdf56b
No known key found for this signature in database
GPG Key ID: D42ADB236521BF7A

View File

@ -264,9 +264,7 @@ func (d dissecting) Dissect(b *bufio.Reader, reader api.TcpReader, options *api.
func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, resolvedDestination string, namespace string) *api.Entry { func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string, resolvedDestination string, namespace string) *api.Entry {
request := item.Pair.Request.Payload.(map[string]interface{}) request := item.Pair.Request.Payload.(map[string]interface{})
response := item.Pair.Response.Payload.(map[string]interface{})
reqDetails := request["details"].(map[string]interface{}) reqDetails := request["details"].(map[string]interface{})
resDetails := response["details"].(map[string]interface{})
elapsedTime := item.Pair.Response.CaptureTime.Sub(item.Pair.Request.CaptureTime).Round(time.Millisecond).Milliseconds() elapsedTime := item.Pair.Response.CaptureTime.Sub(item.Pair.Request.CaptureTime).Round(time.Millisecond).Milliseconds()
if elapsedTime < 0 { if elapsedTime < 0 {
@ -274,7 +272,14 @@ func (d dissecting) Analyze(item *api.OutputChannelItem, resolvedSource string,
} }
reqDetails["method"] = request["method"] reqDetails["method"] = request["method"]
resDetails["method"] = response["method"]
var resDetails map[string]interface{}
if item.Pair.Response.Payload != nil {
response := item.Pair.Response.Payload.(map[string]interface{})
resDetails := response["details"].(map[string]interface{})
resDetails["method"] = response["method"]
}
return &api.Entry{ return &api.Entry{
Protocol: protocol.ProtocolSummary, Protocol: protocol.ProtocolSummary,
Capture: item.Capture, Capture: item.Capture,