Lines Matching refs:amtrelay

271 	dns_rdata_amtrelay_t *amtrelay = source;
276 REQUIRE(amtrelay != NULL);
277 REQUIRE(amtrelay->common.rdtype == type);
278 REQUIRE(amtrelay->common.rdclass == rdclass);
283 RETERR(uint8_tobuffer(amtrelay->precedence, target));
284 n = (amtrelay->discovery ? 0x80 : 0) | amtrelay->gateway_type;
287 switch (amtrelay->gateway_type) {
292 n = ntohl(amtrelay->in_addr.s_addr);
296 return (mem_tobuffer(target, amtrelay->in6_addr.s6_addr, 16));
300 dns_name_toregion(&amtrelay->gateway, &region);
305 return (mem_tobuffer(target, amtrelay->data, amtrelay->length));
312 dns_rdata_amtrelay_t *amtrelay = target;
317 REQUIRE(amtrelay != NULL);
320 amtrelay->common.rdclass = rdata->rdclass;
321 amtrelay->common.rdtype = rdata->type;
322 ISC_LINK_INIT(&amtrelay->common, link);
324 dns_name_init(&amtrelay->gateway, NULL);
325 amtrelay->data = NULL;
330 amtrelay->precedence = uint8_fromregion(&region);
333 amtrelay->gateway_type = uint8_fromregion(&region);
334 amtrelay->discovery = (amtrelay->gateway_type & 0x80) != 0;
335 amtrelay->gateway_type &= 0x7f;
338 switch (amtrelay->gateway_type) {
344 amtrelay->in_addr.s_addr = htonl(n);
349 memmove(amtrelay->in6_addr.s6_addr, region.base, 16);
355 name_duporclone(&name, mctx, &amtrelay->gateway);
361 amtrelay->data = mem_maybedup(mctx, region.base,
363 if (amtrelay->data == NULL) {
367 amtrelay->length = region.length;
369 amtrelay->mctx = mctx;
375 dns_rdata_amtrelay_t *amtrelay = source;
377 REQUIRE(amtrelay != NULL);
378 REQUIRE(amtrelay->common.rdtype == dns_rdatatype_amtrelay);
380 if (amtrelay->mctx == NULL) {
384 if (amtrelay->gateway_type == 3) {
385 dns_name_free(&amtrelay->gateway, amtrelay->mctx);
388 if (amtrelay->data != NULL) {
389 isc_mem_free(amtrelay->mctx, amtrelay->data);
392 amtrelay->mctx = NULL;