2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-09-03 08:05:21 +00:00

Add decompression.

This commit is contained in:
Mark Andrews
1999-02-24 06:31:35 +00:00
parent 1783fac3a1
commit 1ef8965366
63 changed files with 748 additions and 99 deletions

View File

@@ -187,7 +187,6 @@ main(int argc, char *argv[]) {
dns_rdata_init(&rdata);
isc_buffer_init(&dbuf, inbuf, sizeof(inbuf),
ISC_BUFFERTYPE_BINARY);
RUNTIME_CHECK(dns_compress_init(&cctx, -1, mctx) == DNS_R_SUCCESS);
result = dns_rdata_fromtext(&rdata, class, type, lex,
NULL, ISC_FALSE, &dbuf, NULL);
if (result != DNS_R_SUCCESS) {
@@ -195,7 +194,6 @@ main(int argc, char *argv[]) {
"dns_rdata_fromtext returned %s(%d)\n",
dns_result_totext(result), result);
fflush(stdout);
dns_compress_invalidate(&cctx);
continue;
}
if (raw) {
@@ -214,14 +212,21 @@ main(int argc, char *argv[]) {
/* Convert to wire and back? */
if (wire) {
result = dns_compress_init(&cctx, -1, mctx);
if (result != DNS_R_SUCCESS) {
fprintf(stdout,
"dns_compress_init returned %s(%d)\n",
dns_result_totext(result), result);
continue;
}
isc_buffer_init(&wbuf, wirebuf, sizeof(wirebuf),
ISC_BUFFERTYPE_BINARY);
result = dns_rdata_towire(&rdata, &cctx, &wbuf);
dns_compress_invalidate(&cctx);
if (result != DNS_R_SUCCESS) {
fprintf(stdout,
"dns_rdata_towire returned %s(%d)\n",
dns_result_totext(result), result);
dns_compress_invalidate(&cctx);
continue;
}
len = wbuf.used - wbuf.current;
@@ -253,14 +258,15 @@ main(int argc, char *argv[]) {
dns_rdata_init(&rdata);
isc_buffer_init(&dbuf, inbuf, sizeof(inbuf),
ISC_BUFFERTYPE_BINARY);
dns_decompress_init(&dctx, -1, ISC_FALSE);
result = dns_rdata_fromwire(&rdata, class, type, &wbuf,
&dctx, ISC_FALSE, &dbuf);
dns_decompress_invalidate(&dctx);
if (result != DNS_R_SUCCESS) {
fprintf(stdout,
fprintf(stdout,
"dns_rdata_fromwire returned %s(%d)\n",
dns_result_totext(result), result);
fflush(stdout);
dns_compress_invalidate(&cctx);
continue;
}
}
@@ -289,7 +295,6 @@ main(int argc, char *argv[]) {
fprintf(stdout, "\"%.*s\"\n",
(int)tbuf.used, (char*)tbuf.base);
fflush(stdout);
dns_compress_invalidate(&cctx);
if (lasttype == type) {
fprintf(stdout, "dns_rdata_compare = %d\n",
dns_rdata_compare(&rdata, &last));