PageRenderTime 13ms CodeModel.GetById 2ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/bind9/lib/dns/include/dns/soa.h

https://bitbucket.org/freebsd/freebsd-head/
C++ Header | 103 lines | 36 code | 15 blank | 52 comment | 0 complexity | 44135e3b3d21ce633afd085f705d78b9 MD5 | raw file
  1/*
  2 * Copyright (C) 2004-2007, 2009  Internet Systems Consortium, Inc. ("ISC")
  3 * Copyright (C) 2000, 2001  Internet Software Consortium.
  4 *
  5 * Permission to use, copy, modify, and/or distribute this software for any
  6 * purpose with or without fee is hereby granted, provided that the above
  7 * copyright notice and this permission notice appear in all copies.
  8 *
  9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
 10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 11 * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
 12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
 13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
 14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 15 * PERFORMANCE OF THIS SOFTWARE.
 16 */
 17
 18/* $Id: soa.h,v 1.12 2009/09/10 01:47:09 each Exp $ */
 19
 20#ifndef DNS_SOA_H
 21#define DNS_SOA_H 1
 22
 23/*****
 24 ***** Module Info
 25 *****/
 26
 27/*! \file dns/soa.h
 28 * \brief
 29 * SOA utilities.
 30 */
 31
 32/***
 33 *** Imports
 34 ***/
 35
 36#include <isc/lang.h>
 37#include <isc/types.h>
 38
 39#include <dns/types.h>
 40
 41ISC_LANG_BEGINDECLS
 42
 43#define DNS_SOA_BUFFERSIZE      ((2 * DNS_NAME_MAXWIRE) + (4 * 5))
 44
 45isc_result_t
 46dns_soa_buildrdata(dns_name_t *origin, dns_name_t *contact,
 47		   dns_rdataclass_t rdclass,
 48		   isc_uint32_t serial, isc_uint32_t refresh,
 49		   isc_uint32_t retry, isc_uint32_t expire,
 50		   isc_uint32_t minimum, unsigned char *buffer,
 51		   dns_rdata_t *rdata);
 52/*%<
 53 * Build the rdata of an SOA record.
 54 *
 55 * Requires:
 56 *\li   buffer  Points to a temporary buffer of at least
 57 *              DNS_SOA_BUFFERSIZE bytes.
 58 *\li   rdata   Points to an initialized dns_rdata_t.
 59 *
 60 * Ensures:
 61 *  \li    *rdata       Contains a valid SOA rdata.  The 'data' member
 62 *  			refers to 'buffer'.
 63 */
 64
 65isc_uint32_t
 66dns_soa_getserial(dns_rdata_t *rdata);
 67isc_uint32_t
 68dns_soa_getrefresh(dns_rdata_t *rdata);
 69isc_uint32_t
 70dns_soa_getretry(dns_rdata_t *rdata);
 71isc_uint32_t
 72dns_soa_getexpire(dns_rdata_t *rdata);
 73isc_uint32_t
 74dns_soa_getminimum(dns_rdata_t *rdata);
 75/*
 76 * Extract an integer field from the rdata of a SOA record.
 77 *
 78 * Requires:
 79 *	rdata refers to the rdata of a well-formed SOA record.
 80 */
 81
 82void
 83dns_soa_setserial(isc_uint32_t val, dns_rdata_t *rdata);
 84void
 85dns_soa_setrefresh(isc_uint32_t val, dns_rdata_t *rdata);
 86void
 87dns_soa_setretry(isc_uint32_t val, dns_rdata_t *rdata);
 88void
 89dns_soa_setexpire(isc_uint32_t val, dns_rdata_t *rdata);
 90void
 91dns_soa_setminimum(isc_uint32_t val, dns_rdata_t *rdata);
 92/*
 93 * Change an integer field of a SOA record by modifying the
 94 * rdata in-place.
 95 *
 96 * Requires:
 97 *	rdata refers to the rdata of a well-formed SOA record.
 98 */
 99
100
101ISC_LANG_ENDDECLS
102
103#endif /* DNS_SOA_H */