9 #include "printpacket.h"
10 #include "parsetype.h"
13 #define FATAL "dnsqr: fatal: "
17 strerr_die1x(100,"dnsqr: usage: dnsqr type name");
21 strerr_die2sys(111,FATAL
,"unable to parse: ");
29 static char seed
[128];
31 int main(int argc
,char **argv
)
35 dns_random_init(seed
);
38 if (!*++argv
) usage();
39 if (!parsetype(*argv
,type
)) usage();
41 if (!*++argv
) usage();
42 if (!dns_domain_fromdot(&q
,*argv
,str_len(*argv
))) oops();
46 if (!stralloc_copys(&out
,"")) oops();
47 uint16_unpack_big(type
,&u16
);
48 if (!stralloc_catulong0(&out
,u16
,0)) oops();
49 if (!stralloc_cats(&out
," ")) oops();
50 if (!dns_domain_todot_cat(&out
,q
)) oops();
51 if (!stralloc_cats(&out
,":\n")) oops();
53 if (dns_resolve(q
,type
) == -1) {
54 if (!stralloc_cats(&out
,error_str(errno
))) oops();
55 if (!stralloc_cats(&out
,"\n")) oops();
58 if (dns_resolve_tx
.packetlen
< 4) oops();
59 dns_resolve_tx
.packet
[2] &= ~1;
60 dns_resolve_tx
.packet
[3] &= ~128;
61 if (!printpacket_cat(&out
,dns_resolve_tx
.packet
,dns_resolve_tx
.packetlen
)) oops();
64 buffer_putflush(buffer_1
,out
.s
,out
.len
);