MCPcopy Index your code
hub / github.com/secdev/scapy / HTTPResponse

Class HTTPResponse

scapy/layers/http.py:555–598  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

553
554
555class HTTPResponse(_HTTPContent):
556 name = "HTTP Response"
557 fields_desc = (
558 [
559 # First line
560 _HTTPHeaderField("Http-Version", "HTTP/1.1"),
561 _HTTPHeaderField("Status-Code", "200"),
562 _HTTPHeaderField("Reason-Phrase", "OK"),
563 # Headers
564 ]
565 + (
566 _generate_headers(
567 GENERAL_HEADERS,
568 RESPONSE_HEADERS,
569 COMMON_UNSTANDARD_GENERAL_HEADERS,
570 COMMON_UNSTANDARD_RESPONSE_HEADERS,
571 )
572 )
573 + [
574 _HTTPHeaderField("Unknown-Headers", None),
575 ]
576 )
577
578 def answers(self, other):
579 return HTTPRequest in other
580
581 def do_dissect(self, s):
582 """From the HTTP packet string, populate the scapy object"""
583 first_line, body = _dissect_headers(self, s)
584 try:
585 HTTPVersion, Status, Reason = re.split(rb"\s+", first_line, maxsplit=2)
586 self.setfieldval("Http_Version", HTTPVersion)
587 self.setfieldval("Status_Code", Status)
588 self.setfieldval("Reason_Phrase", Reason)
589 except ValueError:
590 pass
591 if body:
592 self.raw_packet_cache = s[: -len(body)]
593 else:
594 self.raw_packet_cache = s
595 return body
596
597 def mysummary(self):
598 return self.sprintf("%HTTPResponse.Status_Code% %HTTPResponse.Reason_Phrase%")
599
600
601# General HTTP class + defragmentation

Callers 3

_ask_authorizationMethod · 0.85
ERRORMethod · 0.85
answerMethod · 0.85

Calls 2

_HTTPHeaderFieldClass · 0.85
_generate_headersFunction · 0.85

Tested by

no test coverage detected