Releases: Badcow/DNS
Releases · Badcow/DNS
v4.3.0
What's Changed
- Fix TxtTest.php for double escape test by @srsbiz in #114
- removed strict hostname validator for Question::setName by @tomschlick in #118
New Contributors
- @tomschlick made their first contribution in #118
Full Changelog: v4.2.1...v4.3.0
Version 4.2.1
Version 4.2.0
- Deprecate support for PHP 7
- Issue #104 Support EDNS (Thank you, yeganemehr)
- Pull #110 Bumped PHP-IP to version 3 (Thank you, necrogami)
Version 4.1.1
- 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.
Version 4.1
- 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.
Version 4
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
. Requires
NSEC3::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.
Full support for DNS message
- New classes to support full stack DNS message:
Badcow\DNS\Message
Badcow\DNS\Opcode
Badcow\DNS\Question
- New method:
Badcow\DNS\Parser\StringIterator::getRemainingAsString()
. - Additional parameters added to
Badcow\DNS\Rdata\RdataInterface::fromWire()
:RdataInterface::fromWire(string $rdata, int &$offset = 0, ?int $rdLength = null)
. Badcow\DNS\Rdata\RdataTrait::decodeName()
now can interpret RFC1035 compressed names in a DNS message context.- Deprecate
Bacow\DNS\Rdata\Algorithms
, useBacow\DNS\Algorithms
instead.
v3.4.0
- If the default TTL control entry
$TTL
is set, theParser
will set the TTL on all resource records to that TTL if one is not explicitly set.
If no$TTL
is set, then the resource record will adopt the last defined $TTL. - Fixed bug where orphan comments were not being ignored.
v3.3.0
Parser no longer ignores $ORIGIN control entry.
v3.2.1
Use actual binary-to-text library repository.