| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -473,22 +473,16 @@ def unpack(self, format): | |||
| 473 | 473 | ||
| 474 | 474 | def readHeader(self): | |
| 475 | 475 | """Reads header portion of packet""" | |
| 476 | - info = self.unpack('!HHHHHH') | ||
| 477 | - | ||
| 478 | - self.id = info[0] | ||
| 479 | - self.flags = info[1] | ||
| 480 | - self.numQuestions = info[2] | ||
| 481 | - self.numAnswers = info[3] | ||
| 482 | - self.numAuthorities = info[4] | ||
| 483 | - self.numAdditionals = info[5] | ||
| 476 | + (self.id, self.flags, self.numQuestions, self.numAnswers, | ||
| 477 | + self.numAuthorities, self.numAdditionals) = self.unpack('!HHHHHH') | ||
| 484 | 478 | ||
| 485 | 479 | def readQuestions(self): | |
| 486 | 480 | """Reads questions section of packet""" | |
| 487 | - for i in range(0, self.numQuestions): | ||
| 481 | + for i in xrange(self.numQuestions): | ||
| 488 | 482 | name = self.readName() | |
| 489 | - info = self.unpack('!HH') | ||
| 483 | + type, clazz = self.unpack('!HH') | ||
| 490 | 484 | ||
| 491 | - question = DNSQuestion(name, info[0], info[1]) | ||
| 485 | + question = DNSQuestion(name, type, clazz) | ||
| 492 | 486 | self.questions.append(question) | |
| 493 | 487 | ||
| 494 | 488 | def readInt(self): | |
@@ -515,35 +509,31 @@ def readOthers(self): | |||
| 515 | 509 | """Reads the answers, authorities and additionals section of the | |
| 516 | 510 | packet""" | |
| 517 | 511 | n = self.numAnswers + self.numAuthorities + self.numAdditionals | |
| 518 | - for i in range(0, n): | ||
| 512 | + for i in xrange(n): | ||
| 519 | 513 | domain = self.readName() | |
| 520 | - info = self.unpack('!HHiH') | ||
| 514 | + type, clazz, ttl, length = self.unpack('!HHiH') | ||
| 521 | 515 | ||
| 522 | 516 | rec = None | |
| 523 | - if info[0] == _TYPE_A: | ||
| 524 | - rec = DNSAddress(domain, info[0], info[1], info[2], | ||
| 525 | - self.readString(4)) | ||
| 526 | - elif info[0] == _TYPE_CNAME or info[0] == _TYPE_PTR: | ||
| 527 | - rec = DNSPointer(domain, info[0], info[1], info[2], | ||
| 528 | - self.readName()) | ||
| 529 | - elif info[0] == _TYPE_TXT: | ||
| 530 | - rec = DNSText(domain, info[0], info[1], info[2], | ||
| 531 | - self.readString(info[3])) | ||
| 532 | - elif info[0] == _TYPE_SRV: | ||
| 533 | - rec = DNSService(domain, info[0], info[1], info[2], | ||
| 517 | + if type == _TYPE_A: | ||
| 518 | + rec = DNSAddress(domain, type, clazz, ttl, self.readString(4)) | ||
| 519 | + elif type == _TYPE_CNAME or type == _TYPE_PTR: | ||
| 520 | + rec = DNSPointer(domain, type, clazz, ttl, self.readName()) | ||
| 521 | + elif type == _TYPE_TXT: | ||
| 522 | + rec = DNSText(domain, type, clazz, ttl, self.readString(length)) | ||
| 523 | + elif type == _TYPE_SRV: | ||
| 524 | + rec = DNSService(domain, type, clazz, ttl, | ||
| 534 | 525 | self.readUnsignedShort(), self.readUnsignedShort(), | |
| 535 | 526 | self.readUnsignedShort(), self.readName()) | |
| 536 | - elif info[0] == _TYPE_HINFO: | ||
| 537 | - rec = DNSHinfo(domain, info[0], info[1], info[2], | ||
| 527 | + elif type == _TYPE_HINFO: | ||
| 528 | + rec = DNSHinfo(domain, type, clazz, ttl, | ||
| 538 | 529 | self.readCharacterString(), self.readCharacterString()) | |
| 539 | - elif info[0] == _TYPE_AAAA: | ||
| 540 | - rec = DNSAddress(domain, info[0], info[1], info[2], | ||
| 541 | - self.readString(16)) | ||
| 530 | + elif type == _TYPE_AAAA: | ||
| 531 | + rec = DNSAddress(domain, type, clazz, ttl, self.readString(16)) | ||
| 542 | 532 | else: | |
| 543 | 533 | # Try to ignore types we don't know about | |
| 544 | 534 | # Skip the payload for the resource record so the next | |
| 545 | 535 | # records can be parsed correctly | |
| 546 | - self.offset += info[3] | ||
| 536 | + self.offset += length | ||
| 547 | 537 | ||
| 548 | 538 | if rec is not None: | |
| 549 | 539 | self.answers.append(rec) | |
| Back | FazBrowse Home | New Git URL |
0 commit comments