aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.adoc4
-rw-r--r--lib/dns/message.go16
2 files changed, 20 insertions, 0 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc
index 6d647edf..41141827 100644
--- a/CHANGELOG.adoc
+++ b/CHANGELOG.adoc
@@ -38,6 +38,10 @@ Legend,
[#v0_61_0]
== pakakeh.go v0.61.0 (2026-xx-xx)
+**🌼 lib/dns: add method to set TTL on Message**
+
+The SetTTL method set all RRs answer time to live.
+
**lib/dns: print the answer TTL in DebugLevelCache**
The log level cache changed to the following format,
diff --git a/lib/dns/message.go b/lib/dns/message.go
index abef69cd..8a5e2f05 100644
--- a/lib/dns/message.go
+++ b/lib/dns/message.go
@@ -996,6 +996,22 @@ func (msg *Message) SetResponseCode(code ResponseCode) {
}
}
+// SetTTL set all RRs answer and authority time-to-live (TTL) to `n`.
+func (msg *Message) SetTTL(n uint32) {
+ for x := range len(msg.Answer) {
+ msg.Answer[x].TTL = n
+ binary.BigEndian.PutUint32(
+ msg.packet[msg.Answer[x].idxTTL:],
+ msg.Answer[x].TTL)
+ }
+ for x := range len(msg.Authority) {
+ msg.Authority[x].TTL = n
+ binary.BigEndian.PutUint32(
+ msg.packet[msg.Authority[x].idxTTL:],
+ msg.Authority[x].TTL)
+ }
+}
+
// SubTTL subtract TTL in each resource records and in packet by n seconds.
// If TTL is less than n, it will set to 0.
func (msg *Message) SubTTL(n uint32) {