Commit 120e76fc authored by Bob Halley's avatar Bob Halley
Browse files

add stdtime

parent a6a0f270
......@@ -28,7 +28,7 @@ CWARNINGS =
OBJS = @ISC_EXTRA_OBJS@ \
assertions.o buffer.o error.o heap.o lex.o mem.o result.o \
rwlock.o symtab.o str.o task.o timer.o version.o \
unix/time.o unix/socket.o \
unix/time.o unix/stdtime.o unix/socket.o \
pthreads/condition.o
SUBDIRS = include unix pthreads
......
......@@ -24,7 +24,7 @@ CINCLUDES = -I${srcdir}/.. \
CDEFINES =
CWARNINGS =
OBJS = time.o socket.o
OBJS = time.o stdtime.o socket.o
SUBDIRS = include
TARGETS = ${OBJS}
......
......@@ -19,7 +19,7 @@ top_srcdir = @top_srcdir@
@BIND9_VERSION@
HEADERS = sockaddr.h time.h
HEADERS = sockaddr.h time.h stdtime.h
SUBDIRS =
TARGETS =
......
/*
* Copyright (C) 1999 Internet Software Consortium.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
#ifndef ISC_STDTIME_H
#define ISC_STDTIME_H 1
#include <time.h>
#include <isc/lang.h>
#include <isc/int.h>
#include <isc/result.h>
ISC_LANG_BEGINDECLS
/*
* It's public information that 'isc_stdtime_t' is an unsigned integral type.
* Applications that want maximum portability should not assume anything
* about its size.
*/
typedef isc_uint32_t isc_stdtime_t;
isc_result_t
isc_stdtime_get(isc_stdtime_t *t);
/*
* Set 't' to the number of seconds since 00:00:00 UTC, January 1, 1970.
*
* Requires:
*
* 't' is a valid pointer.
*
* Returns:
*
* Success
* Unexpected error
*/
ISC_LANG_ENDDECLS
#endif /* ISC_STDTIME_H */
/*
* Copyright (C) 1999 Internet Software Consortium.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
* ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
* CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
#include <config.h>
#include <sys/types.h>
#include <sys/time.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <errno.h>
#include <isc/assertions.h>
#include <isc/error.h>
#include <isc/stdtime.h>
isc_result_t
isc_stdtime_get(isc_stdtime_t *t) {
struct timeval tv;
/*
* Set 't' to the number of seconds since 00:00:00 UTC, January 1,
* 1970.
*/
REQUIRE(t != NULL);
if (gettimeofday(&tv, NULL) == -1) {
UNEXPECTED_ERROR(__FILE__, __LINE__, strerror(errno));
return (ISC_R_UNEXPECTED);
}
*t = (unsigned int)tv.tv_sec;
return (ISC_R_SUCCESS);
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment