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:----ef0tphOQaDQDhX7j4asEkVb+C7Uggjbf5n7ro2QYKDCq/HjiL4PDRRjXSsYjDadGMVuvuE32KXI2hBJFheRGSXfCPuXcTs6eyOX/H14NM6aT0VX78Z1qLJnDHA6KGio5JEVskC2BtYv/+N1ZrvBNSALAh+pmNqxF112UnSm9vbXeGlcLxHJxBPM8GByBMNqlkL37T3Jzi0lyf/8tQc5FBLeDnAtd+rZJyFmEe7pdfPTS+sPxc2X/A1E5SGO+KVmQb5DKqqHToKyJXtxohlPFLbDM3jdZW06gBR3B3FwrbuRkpMyXQTrwVnG5x3811MO5MmWbjUJ3RQmxcE/vpHLTa9Oawl+oHnh0I2oFmt35USyfM6M84hWaPOB06ZUvQYpuOPfDxZAZcW+DZXPZbTBywK9lUxjyCLQYWaZoyUexm8oy+ZCkLQKCnRt7tcHd3PYaVnTwDXpq2SwN5ieEaid0xNmlysfd3FHFShb6z/po0qGn0FqkTrISQjSY9brFS8aZHna1XA6U2IYaGuDih9VilUsBptD3gKA94MIe/cu5ubk150c4iCbv13paxG2b1Bke/8yCIcY4QpQjO+MuYaoocy1A76SgoHPRl56TG366TSv6AhWqoAVRN1pFfMB6eplFZSaPRrfIzwpSWchHP0RvhbMR0Y8LvdmxuYY/UJ6kYLA=----ATTACHMENT:----NjU1NTI4ODI4MDQ4NTY3NCAxODAwODA0MTI2NzA0OTcxIDM4MTU0MTU1NzExMjQ2MDQ=