MCPcopy
hub / github.com/projectdiscovery/katana / ParseResponse

Method ParseResponse

pkg/engine/parser/parser.go:78–90  ·  view source on GitHub ↗

parseResponse runs the response parsers on the navigation response

(resp *navigation.Response)

Source from the content-addressed store, hash-verified

76
77// parseResponse runs the response parsers on the navigation response
78func (p *Parser) ParseResponse(resp *navigation.Response) (navigationRequests []*navigation.Request) {
79 for _, parser := range *p {
80 switch {
81 case parser.parserType == headerParser && resp.Resp != nil:
82 navigationRequests = appendFiltered(navigationRequests, parser.parserFunc(resp))
83 case parser.parserType == bodyParser && resp.Reader != nil:
84 navigationRequests = appendFiltered(navigationRequests, parser.parserFunc(resp))
85 case parser.parserType == contentParser && len(resp.Body) > 0:
86 navigationRequests = appendFiltered(navigationRequests, parser.parserFunc(resp))
87 }
88 }
89 return
90}
91
92// appendFiltered filters navigation requests and appends valid ones to the slice
93func appendFiltered(existing []*navigation.Request, new []*navigation.Request) []*navigation.Request {

Callers 6

navigateRequestMethod · 0.80
DoMethod · 0.80
TestDataURIFilteringFunction · 0.80
DoMethod · 0.80

Calls 1

appendFilteredFunction · 0.85

Tested by 1

TestDataURIFilteringFunction · 0.64