diff --git a/modules/events_stream/events_stream.go b/modules/events_stream/events_stream.go index 58b0e00b..c9170c93 100644 --- a/modules/events_stream/events_stream.go +++ b/modules/events_stream/events_stream.go @@ -36,6 +36,7 @@ type EventsStream struct { quit chan bool dumpHttpReqs bool dumpHttpResp bool + dumpFormatHex bool } func NewEventsStream(s *session.Session) *EventsStream { @@ -214,6 +215,10 @@ func NewEventsStream(s *session.Session) *EventsStream { "false", "If true all HTTP responses will be dumped.")) + mod.AddParam(session.NewBoolParameter("events.stream.http.format.hex", + "true", + "If true dumped HTTP bodies will be in hexadecimal format.")) + return mod } @@ -258,6 +263,8 @@ func (mod *EventsStream) Configure() (err error) { return err } else if err, mod.dumpHttpResp = mod.BoolParam("events.stream.http.response.dump"); err != nil { return err + } else if err, mod.dumpFormatHex = mod.BoolParam("events.stream.http.format.hex"); err != nil { + return err } return err diff --git a/modules/events_stream/events_view_http.go b/modules/events_stream/events_view_http.go index 55c721be..af32a727 100644 --- a/modules/events_stream/events_view_http.go +++ b/modules/events_stream/events_view_http.go @@ -89,12 +89,21 @@ func (mod *EventsStream) dumpGZIP(body []byte) string { buffer := bytes.NewBuffer(body) uncompressed := bytes.Buffer{} reader, err := gzip.NewReader(buffer) - if err != nil { - return mod.dumpRaw(body) - } else if _, err = uncompressed.ReadFrom(reader); err != nil { - return mod.dumpRaw(body) + if mod.dumpFormatHex { + if err != nil { + return mod.dumpRaw(body) + } else if _, err = uncompressed.ReadFrom(reader); err != nil { + return mod.dumpRaw(body) + } + return mod.dumpRaw(uncompressed.Bytes()) + } else { + if err != nil { + return mod.dumpText(body) + } else if _, err = uncompressed.ReadFrom(reader); err != nil { + return mod.dumpText(body) + } + return mod.dumpText(uncompressed.Bytes()) } - return mod.dumpRaw(uncompressed.Bytes()) } func (mod *EventsStream) dumpJSON(body []byte) string { @@ -149,7 +158,11 @@ func (mod *EventsStream) viewHttpRequest(e session.Event) { } else if req.IsType("application/json") { dump += mod.dumpJSON(req.Body) } else { - dump += mod.dumpRaw(req.Body) + if mod.dumpFormatHex { + dump += mod.dumpRaw(req.Body) + } else { + dump += mod.dumpText(req.Body) + } } }