71 lines
2.0 KiB
Ragel
71 lines
2.0 KiB
Ragel
%%{
|
|
machine z;
|
|
|
|
action rdata_a {
|
|
x := rr.(*RR_A)
|
|
x.Hdr = *hdr
|
|
x.A = net.ParseIP(tok.T[0])
|
|
}
|
|
action rdata_aaaa {
|
|
x := rr.(*RR_AAAA)
|
|
x.Hdr = *hdr
|
|
x.AAAA = net.ParseIP(tok.T[0])
|
|
}
|
|
action rdata_ns {
|
|
x := rr.(*RR_NS)
|
|
x.Hdr = *hdr
|
|
x.Ns = tok.T[0]
|
|
}
|
|
action rdata_cname {
|
|
x := rr.(*RR_CNAME)
|
|
x.Hdr = *hdr
|
|
x.Cname = tok.T[0]
|
|
}
|
|
action rdata_soa {
|
|
x := rr.(*RR_SOA)
|
|
x.Hdr = *hdr
|
|
x.Ns = tok.T[0]
|
|
x.Mbox = tok.T[1]
|
|
x.Serial = uint32(tok.N[0])
|
|
x.Refresh = uint32(tok.N[1])
|
|
x.Retry = uint32(tok.N[2])
|
|
x.Expire = uint32(tok.N[3])
|
|
x.Minttl = uint32(tok.N[4])
|
|
}
|
|
action rdata_mx {
|
|
x := rr.(*RR_MX)
|
|
x.Hdr = *hdr;
|
|
x.Pref = uint16(tok.N[0])
|
|
x.Mx = tok.T[0]
|
|
}
|
|
action rdata_ds {
|
|
x := rr.(*RR_DS)
|
|
x.Hdr = *hdr;
|
|
x.KeyTag = uint16(tok.N[0])
|
|
x.Algorithm = uint8(tok.N[1])
|
|
x.DigestType = uint8(tok.N[2])
|
|
x.Digest = tok.T[0]
|
|
}
|
|
action rdata_dnskey {
|
|
x := rr.(*RR_DNSKEY)
|
|
x.Hdr = *hdr;
|
|
x.Flags = uint16(tok.N[0])
|
|
x.Protocol = uint8(tok.N[1])
|
|
x.Algorithm = uint8(tok.N[2])
|
|
x.PublicKey = tok.T[0]
|
|
}
|
|
action rdata_rrsig {
|
|
x := rr.(*RR_RRSIG)
|
|
x.Hdr = *hdr;
|
|
x.TypeCovered = uint16(tok.N[0])
|
|
x.Algorithm = uint8(tok.N[1])
|
|
x.Labels = uint8(tok.N[2])
|
|
x.OrigTtl = uint32(tok.N[3])
|
|
x.Expiration = uint32(tok.N[4])
|
|
x.Inception = uint32(tok.N[5])
|
|
x.KeyTag = uint16(tok.N[6])
|
|
x.SignerName = tok.T[0]
|
|
x.Signature = tok.T[1]
|
|
}
|
|
}%%
|