mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
test/util/minidns: Support priority in MX records
minidns supports MX records, but today it hard-codes priority=10. This is limiting when creating test scenarios that depend on having different MX priorities. This patch adds support for specifying the priority in MX records.
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
# srv-a zone
|
# srv-a zone
|
||||||
srv-a A 127.0.0.1
|
srv-a A 127.0.0.1
|
||||||
srv-a AAAA ::1
|
srv-a AAAA ::1
|
||||||
srv-a MX srv-a
|
srv-a MX 10 srv-a
|
||||||
srv-a TXT v=spf1 a
|
srv-a TXT v=spf1 a
|
||||||
|
|
||||||
# srv-b zone
|
# srv-b zone
|
||||||
srv-b A 127.0.0.1
|
srv-b A 127.0.0.1
|
||||||
srv-b AAAA ::1
|
srv-b AAAA ::1
|
||||||
srv-b MX srv-b
|
srv-b MX 10 srv-b
|
||||||
srv-b TXT v=spf1 a
|
srv-b TXT v=spf1 a
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# srv-a zone
|
# srv-a zone
|
||||||
srv-a A 127.0.0.1
|
srv-a A 127.0.0.1
|
||||||
srv-a AAAA ::1
|
srv-a AAAA ::1
|
||||||
srv-a MX srv-a
|
srv-a MX 10 srv-a
|
||||||
srv-a TXT v=spf1 a
|
srv-a TXT v=spf1 a
|
||||||
|
|
||||||
# srv-b zone
|
# srv-b zone
|
||||||
srv-b A 127.0.0.1
|
srv-b A 127.0.0.1
|
||||||
srv-b AAAA ::1
|
srv-b AAAA ::1
|
||||||
srv-b MX srv-b
|
srv-b MX 10 srv-b
|
||||||
srv-b TXT v=spf1 a
|
srv-b TXT v=spf1 a
|
||||||
|
|||||||
@@ -3,11 +3,11 @@
|
|||||||
# srv-a zone
|
# srv-a zone
|
||||||
srv-a A 127.0.0.1
|
srv-a A 127.0.0.1
|
||||||
srv-a AAAA ::1
|
srv-a AAAA ::1
|
||||||
srv-a MX srv-a
|
srv-a MX 10 srv-a
|
||||||
srv-a TXT v=spf1 -all
|
srv-a TXT v=spf1 -all
|
||||||
|
|
||||||
# srv-b zone
|
# srv-b zone
|
||||||
srv-b A 127.0.0.1
|
srv-b A 127.0.0.1
|
||||||
srv-b AAAA ::1
|
srv-b AAAA ::1
|
||||||
srv-b MX srv-b
|
srv-b MX 10 srv-b
|
||||||
srv-b TXT v=spf1 a
|
srv-b TXT v=spf1 a
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
// For example:
|
// For example:
|
||||||
//
|
//
|
||||||
// blah A 1.2.3.4
|
// blah A 1.2.3.4
|
||||||
// blah MX mx1
|
// blah MX 10 mx1
|
||||||
//
|
//
|
||||||
// Supported types: A, AAAA, MX, TXT.
|
// Supported types: A, AAAA, MX, TXT.
|
||||||
//
|
//
|
||||||
@@ -26,6 +26,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
@@ -280,13 +281,23 @@ func (m *miniDNS) loadZones(f *os.File) {
|
|||||||
body = aaaa
|
body = aaaa
|
||||||
case "mx":
|
case "mx":
|
||||||
qType = dnsmessage.TypeMX
|
qType = dnsmessage.TypeMX
|
||||||
if !strings.HasPrefix(value, ".") {
|
if !strings.HasSuffix(value, ".") {
|
||||||
value += "."
|
value += "."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MX records value are in the form of "<preference> <host>".
|
||||||
|
prefS, host, ok := strings.Cut(value, " ")
|
||||||
|
if !ok {
|
||||||
|
log.Fatalf("line %d: invalid MX value %q", lineno, value)
|
||||||
|
}
|
||||||
|
pref, err := strconv.ParseUint(prefS, 10, 16)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("line %d: invalid MX preference %q", lineno, prefS)
|
||||||
|
}
|
||||||
|
|
||||||
body = &dnsmessage.MXResource{
|
body = &dnsmessage.MXResource{
|
||||||
Pref: 10,
|
Pref: uint16(pref),
|
||||||
MX: dnsmessage.MustNewName(value),
|
MX: dnsmessage.MustNewName(host),
|
||||||
}
|
}
|
||||||
case "txt":
|
case "txt":
|
||||||
qType = dnsmessage.TypeTXT
|
qType = dnsmessage.TypeTXT
|
||||||
|
|||||||
Reference in New Issue
Block a user