- Pull #118 Remove strict hostname validator for
Question::setName
. (Thank you, tomschlick) - Pull #114 Fix broken tests. (Thank you, srsbiz)
- Deprecate support for PHP 7
- Issue #104 Support EDNS (Thank you, yeganemehr)
- Pull #110 Bumped PHP-IP to version 3 (Thank you, necrogami)
- Issue #96 - Use the correct version of rlanvin/php-ip for PHP 8.0. (Thank you, AdnanHussainTurki)
- Switch to Github Workflows from Travis and Scrutinizer.
- Issue #88 - TXT Rdata now supports unquoted contiguous strings. (Thank you, Lorenz Bausch - for bringing this to issue to light).
- Issue #89 - Fixes issue where TXT record with number as value throws exception (Thank you, Lorenz Bausch for bringing this to issue to light).
- PR #90 - Do not add double dot when
$ORIGIN
is the root domain ("."). (Thank you, Cedric Dubois) - Issue #91 - Use
christian-riesen/base32
instead ofademarre/binary-to-text-php
. - Explicit support for PHP 8.
- Throw exception if unpack() returns false. This fixes a litany of new PHPStan errors that are being seen in development.
Badcow\DNS\Rdata\RdataInterface::fromWire
is no longer static and does not return an instance of the class. You now must instantiate the object first, and then callfromWire
method. All parameters are the same.Badcow\DNS\Rdata\RdataInterface::fromText
is no longer static and does not return an instance of the class. You now must instantiate the object first, and then callfromText
method. All parameters are the same.- Deleted
Bacow\DNS\Rdata\Algorithms
, useBacow\DNS\Algorithms
instead. - PR #73 Resolves issue where records with integers are not parsed correctly. (Thank you, Hossein Taleghani)
- Issue #63 - Consistent handling ok keys, signatures and digests.
KEY::setPublicKey($key)
now expects the raw binary form of the public key. SimilarlyKEY::getPublicKey()
returns a raw binary public key.base64_decode()
andbase64_encode()
should be used on the setter and getter, respectively, if you want to handle Base64 encoded string. These changes apply to all child classes as well (DNSKEY
andCDNSKEY
).DS::setDigest($digest)
now expects the raw binary form of the digest. SimilarlyDS::getDigest
returns a raw binary digest.hex2bin()
andbin2hex()
should be used on the setter and getter, respectively, if you want to handle hexadecimal encoded strings. These changes apply to all child classes as well (CDS
,DLV
andTA
).CERT::setCertificate($cert)
now expects the raw binary form of the certificate. SimilarlyCERT::getCertificate()
returns a raw binary certificate.base64_decode()
andbase64_encode()
should be used on the setter and getter, respectively, if you want to handle Base64 encoded strings.DHCID::setDigest($digest)
now expects the raw binary form of the digest. SimilarlyDHCID::getDigest
returns a raw binary digest.hex2bin()
andbin2hex()
should be used on the setter and getter, respectively, if you want to handle hexadecimal encoded strings.IPSECKEY::setPublicKey($key)
now expects the raw binary form of the public key. SimilarlyIPSECKEY::getPublicKey()
returns a raw binary public key.base64_decode()
andbase64_encode()
should be used on the setter and getter, respectively, if you want to handle Base64 encoded strings.NSEC3::setNextHashedOwner($key)
now expects the raw binary form of the hash. SimilarlyNSEC3::getNextHashedOwner()
returns a raw binary hash.NSEC3::base32decode()
andNSEC3::base32encode()
should be used on the setter and getter, respectively, if you want to handle Base32 encoded strings.RRSIG::setSignature($signature)
now expects the raw binary form of the signature. SimilarlyRRSIG::getSignature()
returns a raw binary signature.base64_decode()
andbase64_encode()
should be used on the setter and getter, respectively, if you want to handle Base64 encoded string. These changes apply to the child classSIG
as well.SSHFP::setFingerprint($fingerprint)
now expects the raw binary form of the fingerprint. SimilarlySSHFP::getFingerprint
returns a raw binary fingerprint.hex2bin()
andbin2hex()
should be used on the setter and getter, respectively, if you want to handle hexadecimal encoded strings.
- New method
DS::calculateDigest(string $owner, DNSKEY $dnskey)
will calculate and set the digest using the DNSKEY rdata object. - Issue #75 - Resolves issue where RRSIG records are not process correctly. (Thank you, emkookmer)
- NSEC3 has new parameter
$nextOwnerName
with respective setter and gettersNSEC3::setNextOwnerName($nextOwnerName)
andNSEC3::getNextOwnerName()
. This new parameter will not be rendered in the rdata text or wire formats, but can be used to calculate thenextOwnerHashedName
. - NSEC3 has new method
NSEC3::calculateNextOwnerHash()
to calculate and setNSEC3::nextOwnerHash
. RequiresNSEC3::salt
,NSEC3::nextOwnerName
, andNSEC3::iterations
to be set before calling method. Factory::NSEC3()
has been changed to take only the following parameters:[bool]$unsignedDelegationsCovered
[int]$iterations
[string]$salt
[string]$nextOwnerName
[array] $types
- Issue #70 - Multiple $ORIGIN declarations are now supported. (Thank you, MikeAT)
- Issue #80 - Parser now supports the $INCLUDE directive to import and parse child or subdomain zone files.
- PR #82 - Fix character escaping in TXT records. (Thank you, @fbett)
- Issue #84 -
TXT::toText()
now splits string into 255-byte chunks. (Thank you, @fbett) - Issue #85 -
Badow\DNS\AlignedBuilder
now has finer controls. You can now define the order of rendering Resource Records and add or change Rdata output formatters (seeDocs/AlignedZoneBuilder
). Badow\DNS\AlignedBuilder
cannot be called statically anymore. It must be instantiated.