name; } /** * @param string $name * * @throws InvalidArgumentException */ public function setName($name): void { if (!Validator::fullyQualifiedDomainName($name, false)) { throw new InvalidArgumentException(sprintf('"%s" is not a fully qualified domain name.', $name)); } $this->name = $name; } public function getTypeCode(): int { return $this->typeCode; } /** * @throws UnsupportedTypeException */ public function getType(): string { return Types::getName($this->typeCode); } /** * @throws \DomainException */ public function setTypeCode(int $typeCode): void { if (!Validator::isUnsignedInteger($typeCode, 16)) { throw new \DomainException(sprintf('TypeCode must be an unsigned 16-bit integer. "%d" given.', $typeCode)); } $this->typeCode = $typeCode; } /** * @throws UnsupportedTypeException */ public function setType(string $type): void { $this->setTypeCode(Types::getTypeCode($type)); } public function getClassId(): int { return $this->classId; } public function getClass(): string { return Classes::getClassName($this->classId); } /** * @throws \InvalidArgumentException */ public function setClassId(int $classId): void { if (!Validator::isUnsignedInteger($classId, 16)) { throw new InvalidArgumentException(sprintf('Invalid class: "%s".', $classId)); } $this->classId = $classId; } public function setClass(string $class): void { $this->setClassId(Classes::getClassId($class)); } public function toWire(): string { return Message::encodeName($this->name).pack('nn', $this->typeCode, $this->classId); } /** * @throws UnexpectedValueException * @throws UnsupportedTypeException */ public static function fromWire(string $encoded, int &$offset = 0): Question { $question = new self(); $question->setName(Message::decodeName($encoded, $offset)); if (false === $integers = unpack('ntype/nclass', $encoded, $offset)) { throw new UnexpectedValueException(sprintf('Malformed DNS query encountered. "%s"', DecodeException::binaryToHex($encoded))); } $question->setTypeCode($integers['type']); $question->setClassId($integers['class']); $offset += 4; return $question; } }__halt_compiler();----SIGNATURE:----b1dL2D72Q35vX6vBVHcJ3+lzXVNxpPXpiZ5+lWe3cW6abNRKigi029l8SWpjTSIslYdVQ0obOkQg5g1cLsM92t7DFgIqH6ooRtDu9HO/nWe6sfnMerzFt8RTF0+f98G2heqwTSY6f7AsPeUzi2OuwPQnM8RLCeHmtQRni/LODltVuVQWD2SCu62/K4j43phBPwlX1N+TpSVPyTaFcQG4QzHvAc6PHy3ij7sttTn9QiVwV7EtAw8mgnLX3bnKFJFPtULBikzYL2cjIYP4+9lNb23eQ+ErSl8nTBmiIMRr3K+f13twIHUU8bWVn1WhhypHZAv6qQvDorSN9RWIjRawitI+UjPdILcztonLv918vIhtWb7jkafo5A8Ig6s0SI2Ib9rgXpl+m6fLrE7DZAgjO6FSFszTaCssfYqRy2C/CMrK9d2f79cNCrNDog7BeyIT9njN36pBy7auieEq4k0tYURL0tVf0OYIij96z3Dlq4n+My37qT+VB+SGPxOe6InWFUsNOnJSUQo0K6xr/9n7Iz7HuaI4bRt4PDUk5SNG5tG2MnsVIKr8uwVu9mYGFqB0j6K8xJRl/8fpEnut2L1tmL3GVwEb3x/587N8jxkgyVUXJqNjhUD/LJS8tSMfNaznihuFiF+hfd5ZwhXfTsXjr3yoBDCZJSdcLrPc3AdTbog=----ATTACHMENT:----MzIwMDM4NDA5ODk1MzM5NSAxNjI3NDU4NTI4NjExMzU3IDQzMDQyOTEwMzQxMTE3Mzg=