Merge branch 'vendor/BIND' into bind_vendor2
[dragonfly.git] / contrib / bind-9.5.2 / lib / dns / include / dns / ttl.h
1 /*
2  * Copyright (C) 2004-2007  Internet Systems Consortium, Inc. ("ISC")
3  * Copyright (C) 1999-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: ttl.h,v 1.19 2007/06/19 23:47:17 tbox Exp $ */
19
20 #ifndef DNS_TTL_H
21 #define DNS_TTL_H 1
22
23 /*! \file dns/ttl.h */
24
25 /***
26  ***    Imports
27  ***/
28
29 #include <isc/lang.h>
30 #include <isc/types.h>
31
32 ISC_LANG_BEGINDECLS
33
34 /***
35  ***    Functions
36  ***/
37
38 isc_result_t
39 dns_ttl_totext(isc_uint32_t src, isc_boolean_t verbose,
40                isc_buffer_t *target);
41 /*%<
42  * Output a TTL or other time interval in a human-readable form.
43  * The time interval is given as a count of seconds in 'src'.
44  * The text representation is appended to 'target'.
45  *
46  * If 'verbose' is ISC_FALSE, use the terse BIND 8 style, like "1w2d3h4m5s".
47  *
48  * If 'verbose' is ISC_TRUE, use a verbose style like the SOA comments
49  * in "dig", like "1 week 2 days 3 hours 4 minutes 5 seconds".
50  *
51  * Returns:
52  * \li  ISC_R_SUCCESS
53  * \li  ISC_R_NOSPACE
54  */
55
56 isc_result_t
57 dns_counter_fromtext(isc_textregion_t *source, isc_uint32_t *ttl);
58 /*%<
59  * Converts a counter from either a plain number or a BIND 8 style value.
60  *
61  * Returns:
62  *\li   ISC_R_SUCCESS
63  *\li   DNS_R_SYNTAX
64  */
65
66 isc_result_t
67 dns_ttl_fromtext(isc_textregion_t *source, isc_uint32_t *ttl);
68 /*%<
69  * Converts a ttl from either a plain number or a BIND 8 style value.
70  *
71  * Returns:
72  *\li   ISC_R_SUCCESS
73  *\li   DNS_R_BADTTL
74  */
75
76 ISC_LANG_ENDDECLS
77
78 #endif /* DNS_TTL_H */