From 256d7f8216872c0ae9abf02ade742bed96710a97 Mon Sep 17 00:00:00 2001 From: Leonid Bugaev Date: Mon, 30 Aug 2021 19:28:53 +0300 Subject: [PATCH] Reduce cognitive complexity --- tcp/tcp_message.go | 50 ++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/tcp/tcp_message.go b/tcp/tcp_message.go index b360f58..cf3a1f6 100644 --- a/tcp/tcp_message.go +++ b/tcp/tcp_message.go @@ -353,36 +353,38 @@ func (parser *MessageParser) addPacket(m *Message, pckt *Packet) bool { if parser.End != nil { if parser.End(m) { parser.Emit(m) - } else { - // Expect: 100-continue handling - if state, ok := m.feedback.(*proto.HTTPState); ok { - if state.Continue100 { - delete(parser.m, m.packets[0].MessageID()) - - // Shift Ack by given offset - // Size of "HTTP/1.1 100 Continue\r\n\r\n" message - for _, p := range m.packets { - p.messageID = 0 - p.Ack += 25 - } - - // If next section was aready approved and received, merge messages - if next, found := parser.m[m.packets[0].MessageID()]; found { - for _, p := range next.packets { - parser.addPacket(m, p) - } - } - - // Re-add (or override) again with new message and ID - parser.m[m.packets[0].MessageID()] = m - } - } + return true } + + parser.Fix100Continue(m) } return true } +func (parser *MessageParser) Fix100Continue(m *Message) { + if state, ok := m.feedback.(*proto.HTTPState); ok && state.Continue100 { + delete(parser.m, m.packets[0].MessageID()) + + // Shift Ack by given offset + // Size of "HTTP/1.1 100 Continue\r\n\r\n" message + for _, p := range m.packets { + p.messageID = 0 + p.Ack += 25 + } + + // If next section was aready approved and received, merge messages + if next, found := parser.m[m.packets[0].MessageID()]; found { + for _, p := range next.packets { + parser.addPacket(m, p) + } + } + + // Re-add (or override) again with new message and ID + parser.m[m.packets[0].MessageID()] = m + } +} + func (parser *MessageParser) Read() *Message { m := <-parser.messages return m