1/* 2 * Copyright (C) 2004-2007, 2012 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: time.h,v 1.19 2012/01/27 23:46:58 tbox Exp $ */ 19 20#ifndef DNS_TIME_H 21#define DNS_TIME_H 1 22 23/*! \file dns/time.h */ 24 25/*** 26 *** Imports 27 ***/ 28 29#include <isc/buffer.h> 30#include <isc/lang.h> 31 32ISC_LANG_BEGINDECLS 33 34/*** 35 *** Functions 36 ***/ 37 38isc_result_t 39dns_time64_fromtext(const char *source, isc_int64_t *target); 40/*%< 41 * Convert a date and time in YYYYMMDDHHMMSS text format at 'source' 42 * into to a 64-bit count of seconds since Jan 1 1970 0:00 GMT. 43 * Store the count at 'target'. 44 */ 45 46isc_result_t 47dns_time32_fromtext(const char *source, isc_uint32_t *target); 48/*%< 49 * Like dns_time64_fromtext, but returns the second count modulo 2^32 50 * as per RFC2535. 51 */ 52 53 54isc_result_t 55dns_time64_totext(isc_int64_t value, isc_buffer_t *target); 56/*%< 57 * Convert a 64-bit count of seconds since Jan 1 1970 0:00 GMT into 58 * a YYYYMMDDHHMMSS text representation and append it to 'target'. 59 */ 60 61isc_result_t 62dns_time32_totext(isc_uint32_t value, isc_buffer_t *target); 63/*%< 64 * Like dns_time64_totext, but for a 32-bit cyclic time value. 65 * Of those dates whose counts of seconds since Jan 1 1970 0:00 GMT 66 * are congruent with 'value' modulo 2^32, the one closest to the 67 * current date is chosen. 68 */ 69 70isc_int64_t 71dns_time64_from32(isc_uint32_t value); 72/*%< 73 * Covert a 32-bit cyclic time value into a 64 bit time stamp. 74 */ 75 76ISC_LANG_ENDDECLS 77 78#endif /* DNS_TIME_H */ 79