if (debugging) {
fflush(stdout);
if (debugtiming) {
- TIME_NOW(&t);
+ t = isc_time_now();
fprintf(stderr, "%u.%06u: ", isc_time_seconds(&t),
isc_time_nanoseconds(&t) / 1000);
}
isc_buffer_usedregion(&query->sendbuf, &r);
debug("sending a request");
if (query->lookup->use_usec) {
- TIME_NOW_HIRES(&query->time_sent);
+ query->time_sent = isc_time_now_hires();
} else {
- TIME_NOW(&query->time_sent);
+ query->time_sent = isc_time_now();
}
isc_nmhandle_attach(query->handle, &query->sendhandle);
dig_query_t *sendquery = NULL;
debug("sending a request in launch_next_query");
if (query->lookup->use_usec) {
- TIME_NOW_HIRES(&query->time_sent);
+ query->time_sent = isc_time_now_hires();
} else {
- TIME_NOW(&query->time_sent);
+ query->time_sent = isc_time_now();
}
query_attach(query, &sendquery);
}
if (query->lookup->use_usec) {
- TIME_NOW_HIRES(&query->time_recv);
+ query->time_recv = isc_time_now_hires();
} else {
- TIME_NOW(&query->time_recv);
+ query->time_recv = isc_time_now();
}
if ((!l->pending && !l->ns_search_only) || cancel_now) {
char fromtext[ISC_SOCKADDR_FORMATSIZE];
isc_sockaddr_format(from, fromtext, sizeof(fromtext));
if (query->lookup->use_usec) {
- TIME_NOW_HIRES(&now);
+ now = isc_time_now_hires();
} else {
- TIME_NOW(&now);
+ now = isc_time_now();
}
diff = (int)isc_time_microdiff(&now, &query->time_sent);
printf("Received %u bytes from %s in %d ms\n", bytes, fromtext,
check_result(result, "dns_master_stylecreate");
gdb = NULL;
- TIME_NOW(&timer_start);
+ timer_start = isc_time_now();
loadzone(file, origin, rdclass, &gdb);
if (journal != NULL) {
loadjournal(mctx, gdb, journal);
}
presign();
- TIME_NOW(&sign_start);
+ sign_start = isc_time_now();
signapex();
if (!atomic_load(&finished)) {
/*
}
}
postsign();
- TIME_NOW(&sign_finish);
+ sign_finish = isc_time_now();
if (disable_zone_check) {
vresult = ISC_R_SUCCESS;
isc_managers_destroy(&mctx, &loopmgr, &netmgr);
if (printstats) {
- TIME_NOW(&timer_finish);
+ timer_finish = isc_time_now();
print_stats(&timer_start, &timer_finish, &sign_start,
&sign_finish);
isc_mutex_destroy(&statslock);
/*
* Record the server's startup time.
*/
- result = isc_time_now(&named_g_boottime);
- if (result != ISC_R_SUCCESS) {
- named_main_earlyfatal("isc_time_now() failed: %s",
- isc_result_totext(result));
- }
+ named_g_boottime = isc_time_now();
result = create_managers();
if (result != ISC_R_SUCCESS) {
isc_logconfig_t *logc = NULL;
isc_portset_t *v4portset = NULL;
isc_portset_t *v6portset = NULL;
- isc_result_t result, tresult;
+ isc_result_t result;
uint32_t heartbeat_interval;
uint32_t interface_interval;
uint32_t udpsize;
/*
* Record the time of most recent configuration
*/
- tresult = isc_time_now(&named_g_configtime);
- if (tresult != ISC_R_SUCCESS) {
- named_main_earlyfatal("isc_time_now() failed: %s",
- isc_result_totext(result));
- }
+ named_g_configtime = isc_time_now();
isc_loopmgr_resume(named_g_loopmgr);
exclusive = false;
}
}
- TIME_NOW(&now);
+ now = isc_time_now();
isc_time_formattimestamp(&now, tbuf, sizeof(tbuf));
CHECK(putstr(text, "secure roots as of "));
CHECK(putstr(text, tbuf));
addzone ? NAMED_COMMAND_ADDZONE : NAMED_COMMAND_MODZONE);
/* Changing a zone counts as reconfiguration */
- CHECK(isc_time_now(&named_g_configtime));
+ named_g_configtime = isc_time_now();
cleanup:
if (isc_buffer_usedlength(*text) > 0) {
"zone %s scheduled for removal via delzone", zonename);
/* Removing a zone counts as reconfiguration */
- CHECK(isc_time_now(&named_g_configtime));
+ named_g_configtime = isc_time_now();
result = ISC_R_SUCCESS;
}
/* Initialize current time and key list. */
- TIME_NOW(&timenow);
+ timenow = isc_time_now();
now = isc_time_seconds(&timenow);
when = now;
char boottime[sizeof "yyyy-mm-ddThh:mm:ss.sssZ"];
char configtime[sizeof "yyyy-mm-ddThh:mm:ss.sssZ"];
char nowstr[sizeof "yyyy-mm-ddThh:mm:ss.sssZ"];
- isc_time_t now;
+ isc_time_t now = isc_time_now();
xmlTextWriterPtr writer = NULL;
xmlDocPtr doc = NULL;
int xmlrc;
#endif /* ifdef HAVE_DNSTAP */
isc_result_t result;
- isc_time_now(&now);
isc_time_formatISO8601ms(&named_g_boottime, boottime, sizeof boottime);
isc_time_formatISO8601ms(&named_g_configtime, configtime,
sizeof configtime);
CHECKMEM(obj);
json_object_object_add(bindstats, "json-stats-version", obj);
- isc_time_now(&now);
+ now = isc_time_now();
isc_time_formatISO8601ms(&named_g_boottime, boottime, sizeof(boottime));
isc_time_formatISO8601ms(&named_g_configtime, configtime,
sizeof configtime);
named_zone_configure_writeable_dlz(dns_dlzdb_t *dlzdatabase, dns_zone_t *zone,
dns_rdataclass_t rdclass, dns_name_t *name) {
dns_db_t *db = NULL;
- isc_time_t now;
isc_result_t result;
- TIME_NOW(&now);
-
dns_zone_settype(zone, dns_zone_dlz);
result = dns_sdlz_setdb(dlzdatabase, rdclass, name, &db);
if (result != ISC_R_SUCCESS) {
*/
if (burst) {
isc_time_t start, now;
- RUNCHECK(isc_time_now(&start));
+ start = isc_time_now();
/*
* Sleep to 1ms of the end of the second then run a busy loop
* until the second changes.
*/
do {
- RUNCHECK(isc_time_now(&now));
+ now = isc_time_now();
if (isc_time_seconds(&start) == isc_time_seconds(&now))
{
int us = US_PER_SEC -
--- /dev/null
+@@
+statement S;
+expression V, E;
+@@
+
+- V = isc_time_now(&E);
+- if (V != ISC_R_SUCCESS) S
++ E = isc_time_now();
+
+@@
+expression V, E;
+@@
+
+- V = isc_time_now(&E);
+- RUNTIME_CHECK(V == ISC_R_SUCCESS);
++ E = isc_time_now();
+
+@@
+expression V, E;
+@@
+
+- V = isc_time_now(&E);
+- assert_int_equal(V, ISC_R_SUCCESS);
++ E = isc_time_now();
+
+@@
+expression E;
+@@
+
+- assert_int_equal(isc_time_now(&E), ISC_R_SUCCESS);
++ E = isc_time_now();
+
+@@
+expression E;
+@@
+
+- TIME_NOW(&E);
++ E = isc_time_now();
+
+@@
+expression E;
+@@
+
+- CHECK(isc_time_now(&E));
++ E = isc_time_now();
+
+@@
+statement S;
+expression V, E;
+@@
+
+- V = isc_time_now_hires(&E);
+- if (V != ISC_R_SUCCESS) S
++ E = isc_time_now_hires();
+
+@@
+expression E;
+@@
+
+- isc_time_now(&E);
++ E = isc_time_now();
+
+@@
+expression E;
+@@
+
+- isc_time_now_hires(&E);
++ E = isc_time_now_hires();
+
+@@
+expression E;
+@@
+
+- TIME_NOW_HIRES(&E);
++ E = isc_time_now_hires();
dns_badcache_add(dns_badcache_t *bc, const dns_name_t *name,
dns_rdatatype_t type, bool update, uint32_t flags,
isc_time_t *expire) {
- isc_result_t result;
unsigned int hashval, hash;
dns_bcentry_t *bad, *prev, *next;
isc_time_t now;
RWLOCK(&bc->lock, isc_rwlocktype_read);
- result = isc_time_now(&now);
- if (result != ISC_R_SUCCESS) {
- isc_time_settoepoch(&now);
- }
+ now = isc_time_now();
hashval = dns_name_hash(name);
hash = hashval % bc->size;
void
dns_badcache_flushname(dns_badcache_t *bc, const dns_name_t *name) {
dns_bcentry_t *bad, *prev, *next;
- isc_result_t result;
isc_time_t now;
unsigned int hash;
RWLOCK(&bc->lock, isc_rwlocktype_read);
- result = isc_time_now(&now);
- if (result != ISC_R_SUCCESS) {
- isc_time_settoepoch(&now);
- }
+ now = isc_time_now();
hash = dns_name_hash(name) % bc->size;
LOCK(&bc->tlocks[hash]);
prev = NULL;
unsigned int i;
int n;
isc_time_t now;
- isc_result_t result;
REQUIRE(VALID_BADCACHE(bc));
REQUIRE(name != NULL);
*/
RWLOCK(&bc->lock, isc_rwlocktype_write);
- result = isc_time_now(&now);
- if (result != ISC_R_SUCCESS) {
- isc_time_settoepoch(&now);
- }
+ now = isc_time_now();
for (i = 0; atomic_load_relaxed(&bc->count) > 0 && i < bc->size; i++) {
prev = NULL;
RWLOCK(&bc->lock, isc_rwlocktype_write);
fprintf(fp, ";\n; %s\n;\n", cachename);
- TIME_NOW(&now);
+ now = isc_time_now();
for (i = 0; atomic_load_relaxed(&bc->count) > 0 && i < bc->size; i++) {
prev = NULL;
for (bad = bc->table[i]; bad != NULL; bad = next) {
REQUIRE(DNS_CATZ_ZONE_VALID(catz));
- isc_time_now(&now);
+ now = isc_time_now();
tdiff = isc_time_microdiff(&now, &catz->lastupdated) / 1000000;
if (tdiff < catz->defoptions.min_update_interval) {
uint64_t defer = catz->defoptions.min_update_interval - tdiff;
static void
dns__catz_timer_cb(void *arg) {
char domain[DNS_NAME_FORMATSIZE];
- isc_result_t result;
dns_catz_zone_t *catz = (dns_catz_zone_t *)arg;
REQUIRE(DNS_CATZ_ZONE_VALID(catz));
isc_timer_destroy(&catz->updatetimer);
catz->loop = NULL;
- result = isc_time_now(&catz->lastupdated);
- RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ catz->lastupdated = isc_time_now();
UNLOCK(&catz->catzs->lock);
}
return (0);
}
- TIME_NOW(&now);
+ now = isc_time_now();
return (isc_time_microdiff(&now, &resp->start) / 1000);
}
udp_startrecv(isc_nmhandle_t *handle, dns_dispentry_t *resp) {
REQUIRE(VALID_RESPONSE(resp));
- TIME_NOW(&resp->start);
+ resp->start = isc_time_now();
dispentry_log(resp, LVL(90), "attaching handle %p to %p", handle,
&resp->handle);
isc_nmhandle_attach(handle, &resp->handle);
check_file_size_and_maybe_reopen(view->dtenv);
}
- TIME_NOW(&now);
+ now = isc_time_now();
t = &now;
init_msg(view->dtenv, &dm, dnstap_type(msgtype));
if (pps < 100) {
pps = 100;
}
- isc_time_now(&end);
+ end = isc_time_now();
interval = 1000000 / pps; /* interval in usec */
if (interval == 0) {
}
}
- isc_time_now(&start);
+ start = isc_time_now();
result = dns_rbt_destroy2(treep, rbtdb->quantum);
if (result == ISC_R_QUOTA) {
INSIST(rbtdb->loop != NULL);
isc_interval_set(&interval, 2, 0);
isc_time_add(&fctx->expires, &interval, &expires);
- isc_time_now(&now);
+ now = isc_time_now();
if (isc_time_compare(&expires, &now) <= 0) {
isc_interval_set(&interval, 0, 1);
} else {
* Keep some record of fetch result for logging later (if required).
*/
fctx->result = result;
- TIME_NOW(&now);
+ now = isc_time_now();
fctx->duration = isc_time_microdiff(&now, &fctx->start);
for (resp = ISC_LIST_HEAD(fctx->resps); resp != NULL; resp = next) {
/*
* Has this fetch already expired?
*/
- isc_time_now(&now);
+ now = isc_time_now();
limit = isc_time_microdiff(&fctx->expires, &now);
if (limit < US_PER_MS) {
FCTXTRACE("fetch already expired");
* (Note that netmgr timeouts have millisecond accuracy, so
* anything less than 1000 microseconds is close enough to zero.)
*/
- isc_time_now(&now);
+ now = isc_time_now();
timeleft = isc_time_microdiff(&fctx->expires_try_stale, &now);
if (timeleft >= US_PER_MS) {
return (ISC_R_SUCCESS);
dns_message_create(fctx->mctx, DNS_MESSAGE_INTENTPARSE,
&query->rmessage);
- TIME_NOW(&query->start);
+ query->start = isc_time_now();
/*
* If this is a TCP query, then we need to make a socket and
dns_rdataset_init(&fctx->qminrrset);
dns_rdataset_init(&fctx->nsrrset);
- TIME_NOW(&fctx->start);
+ fctx->start = isc_time_now();
fctx->now = (isc_stdtime_t)fctx->start.seconds;
if (client != NULL) {
} else {
isc_buffer_initnull(&rctx->buffer);
}
- TIME_NOW(&rctx->tnow);
+ rctx->tnow = isc_time_now();
rctx->finish = &rctx->tnow;
rctx->now = (isc_stdtime_t)isc_time_seconds(&rctx->tnow);
}
fctx->timeout = true;
fctx->timeouts++;
- isc_time_now(&now);
+ now = isc_time_now();
/* netmgr timeouts are accurate to the millisecond */
if (isc_time_microdiff(&fctx->expires, &now) < US_PER_MS) {
FCTXTRACE("query timed out; stopped trying to make "
REQUIRE(DNS_RPZ_ZONE_VALID(rpz));
- isc_time_now(&now);
+ now = isc_time_now();
tdiff = isc_time_microdiff(&now, &rpz->lastupdated) / 1000000;
if (tdiff < rpz->min_update_interval) {
uint64_t defer = rpz->min_update_interval - tdiff;
static void
dns__rpz_timer_cb(void *arg) {
char domain[DNS_NAME_FORMATSIZE];
- isc_result_t result;
dns_rpz_zone_t *rpz = (dns_rpz_zone_t *)arg;
REQUIRE(DNS_RPZ_ZONE_VALID(rpz));
isc_timer_destroy(&rpz->updatetimer);
rpz->loop = NULL;
- result = isc_time_now(&rpz->lastupdated);
- RUNTIME_CHECK(result == ISC_R_SUCCESS);
+ rpz->lastupdated = isc_time_now();
unlock:
UNLOCK(&rpz->rpzs->maint_lock);
}
dns_name_t *foundname;
isc_result_t result;
unsigned int options;
- isc_time_t now;
+ isc_time_t now = isc_time_now();
char namebuf[DNS_NAME_FORMATSIZE];
char typebuf[DNS_RDATATYPE_FORMATSIZE];
disassociate_rdatasets(val);
- if (isc_time_now(&now) == ISC_R_SUCCESS &&
- dns_resolver_getbadcache(val->view->resolver, name, type, &now))
- {
+ if (dns_resolver_getbadcache(val->view->resolver, name, type, &now)) {
dns_name_format(name, namebuf, sizeof(namebuf));
dns_rdatatype_format(type, typebuf, sizeof(typebuf));
validator_log(val, ISC_LOG_INFO, "bad cache hit (%s/%s)",
xfr->state = XFRST_INITIALSOA;
}
- isc_time_now(&xfr->start);
+ xfr->start = isc_time_now();
if (tsigkey != NULL) {
dns_tsigkey_attach(tsigkey, &xfr->tsigkey);
zmgr = dns_zone_getmgr(xfr->zone);
if (zmgr != NULL) {
if (result != ISC_R_SUCCESS) {
- TIME_NOW(&now);
+ now = isc_time_now();
dns_zonemgr_unreachableadd(zmgr, &xfr->primaryaddr,
&xfr->sourceaddr, &now);
CHECK(result);
xfr->nmsg = 0;
xfr->nrecs = 0;
xfr->nbytes = 0;
- isc_time_now(&xfr->start);
+ xfr->start = isc_time_now();
msg->id = xfr->id;
if (xfr->tsigctx != NULL) {
dst_context_destroy(&xfr->tsigctx);
* Calculate the length of time the transfer took,
* and print a log message with the bytes and rate.
*/
- isc_time_now(&xfr->end);
+ xfr->end = isc_time_now();
msecs = isc_time_microdiff(&xfr->end, &xfr->start) / 1000;
if (msecs == 0) {
msecs = 1;
REQUIRE(zonep != NULL && *zonep == NULL);
REQUIRE(mctx != NULL);
- TIME_NOW(&now);
+ now = isc_time_now();
zone = isc_mem_get(mctx, sizeof(*zone));
*zone = (dns_zone_t){
.masterformat = dns_masterformat_none,
LOCK_ZONE(zone->raw);
}
- TIME_NOW(&now);
+ now = isc_time_now();
INSIST(zone->type != dns_zone_none);
* zone->loadtime is set, then the file will still be reloaded
* the next time dns_zone_load is called.
*/
- TIME_NOW(&loadtime);
+ loadtime = isc_time_now();
/*
* Don't do the load if the file that stores the zone is older
ISC_LIST_INITANDAPPEND(zone->nsec3chain, nsec3chain, link);
nsec3chain = NULL;
if (isc_time_isepoch(&zone->nsec3chaintime)) {
- TIME_NOW(&now);
+ now = isc_time_now();
zone->nsec3chaintime = now;
if (zone->loop != NULL) {
zone_settimer(zone, &now);
then = key->removehd;
}
- TIME_NOW(&timenow);
+ timenow = isc_time_now();
if (then > now) {
DNS_ZONE_TIME_ADD(&timenow, then - now, &timethen);
} else {
INSIST(LOCKED_ZONE(zone->secure));
}
- TIME_NOW(&now);
+ now = isc_time_now();
/*
* Initiate zone transfer? We may need a error code that
/* Don't really retry if we are exiting */
char timebuf[80];
- TIME_NOW(&timenow);
+ timenow = isc_time_now();
DNS_ZONE_TIME_ADD(&timenow, dns_zone_mkey_hour, &timethen);
zone->refreshkeytime = timethen;
zone_settimer(zone, &timenow);
return;
}
- TIME_NOW(&now);
+ now = isc_time_now();
/*
* Expire check.
set_resigntime(zone);
if (zone->loop != NULL) {
isc_time_t now;
- TIME_NOW(&now);
+ now = isc_time_now();
zone_settimer(zone, &now);
}
}
return;
}
- TIME_NOW(&now);
+ now = isc_time_now();
/* add some noise */
DNS_ZONE_JITTER_ADD(&now, delay, &dumptime);
LOCK_ZONE(zone);
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NEEDNOTIFY);
- TIME_NOW(&now);
+ now = isc_time_now();
zone_settimer(zone, &now);
UNLOCK_ZONE(zone);
}
ENTER;
- TIME_NOW(&now);
+ now = isc_time_now();
LOCK_ZONE(zone);
ENTER;
- TIME_NOW(&now);
+ now = isc_time_now();
LOCK_ZONE(zone);
ENTER;
- TIME_NOW(&now);
+ now = isc_time_now();
LOCK_ZONE(zone);
ENTER;
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_REFRESH);
- TIME_NOW(&now);
+ now = isc_time_now();
zone_settimer(zone, &now);
}
* signature expiration.
*/
set_resigntime(zone);
- TIME_NOW(&timenow);
+ timenow = isc_time_now();
zone_settimer(zone, &timenow);
UNLOCK_ZONE(zone);
if (result != ISC_R_SUCCESS) {
LOCK_ZONE(zone);
set_resigntime(zone);
- TIME_NOW(&timenow);
+ timenow = isc_time_now();
zone_settimer(zone, &timenow);
UNLOCK_ZONE(zone);
if (result == DNS_R_UNCHANGED) {
goto failure;
}
- TIME_NOW(&loadtime);
+ loadtime = isc_time_now();
ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
if (zone->db != NULL) {
result = dns_db_getsoaserial(zone->db, NULL, &oldserial);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_REFRESH);
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_SOABEFOREAXFR);
- TIME_NOW(&now);
+ now = isc_time_now();
switch (xfrresult) {
case ISC_R_SUCCESS:
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_NEEDNOTIFY);
zone->sigresigninginterval = interval;
set_resigntime(zone);
if (zone->loop != NULL) {
- TIME_NOW(&now);
+ now = isc_time_now();
zone_settimer(zone, &now);
}
UNLOCK_ZONE(zone);
CHECK(ISC_R_CANCELED);
}
- TIME_NOW(&now);
+ now = isc_time_now();
primaryaddr = dns_remote_curraddr(&zone->primaries);
isc_sockaddr_format(&primaryaddr, primary, sizeof(primary));
isc_time_t now;
LOCK_ZONE(zone);
- TIME_NOW(&now);
+ now = isc_time_now();
zone_settimer(zone, &now);
UNLOCK_ZONE(zone);
}
signing->deleteit = deleteit;
signing->done = false;
- TIME_NOW(&now);
+ now = isc_time_now();
ZONEDB_LOCK(&zone->dblock, isc_rwlocktype_read);
if (zone->db != NULL) {
"checkds: empty DS response from %s", addrbuf);
}
- TIME_NOW(&timenow);
+ timenow = isc_time_now();
now = isc_time_seconds(&timenow);
CHECK(dns_zone_getdb(zone, &db));
CHECK(dns_db_newversion(db, &ver));
CHECK(dns_db_getoriginnode(db, &node));
- TIME_NOW(&timenow);
+ timenow = isc_time_now();
now = isc_time_seconds(&timenow);
kasp = dns_zone_getkasp(zone);
DNS_ZONEKEY_SETOPTION(zone, DNS_ZONEKEY_FULLSIGN);
}
- TIME_NOW(&now);
+ now = isc_time_now();
zone->refreshkeytime = now;
zone_settimer(zone, &now);
isc_result_t result;
dns_zone_t *secure = NULL;
- TIME_NOW(&loadtime);
+ loadtime = isc_time_now();
/*
* Lock hierarchy: zmgr, zone, raw.
REQUIRE(VALID_HTTPD(httpd));
REQUIRE(reqp != NULL && *reqp == NULL);
- isc_time_now(&now);
+ now = isc_time_now();
isc_time_formathttptimestamp(&now, datebuf, sizeof(datebuf));
if (httpd->up.field_set & (1 << ISC_UF_PATH)) {
item->action = func;
item->action_arg = arg;
item->isstatic = isstatic;
- isc_time_now(&item->loadtime);
+ item->loadtime = isc_time_now();
ISC_LINK_INIT(item, link);
* Returns the system's monotonic time in linear nanoseconds.
*/
-isc_result_t
-isc_time_now(isc_time_t *t);
+isc_time_t
+isc_time_now(void);
/*%<
* Set 't' to the current absolute time.
*
* in the current definition of isc_time_t.
*/
-isc_result_t
-isc_time_now_hires(isc_time_t *t);
+isc_time_t
+isc_time_now_hires(void);
/*%<
* Set 't' to the current absolute time. Uses higher resolution clocks
* recommended when microsecond accuracy is required.
FATAL_SYSERROR(ret, "%s()", #func); \
}
-/*%
- * Time
- */
-#define TIME_NOW(tp) RUNTIME_CHECK(isc_time_now((tp)) == ISC_R_SUCCESS)
-#define TIME_NOW_HIRES(tp) \
- RUNTIME_CHECK(isc_time_now_hires((tp)) == ISC_R_SUCCESS)
-
/*%
* Alignment
*/
}
/* Then just rename the current logfile */
- isc_time_now(&now);
+ now = isc_time_now();
isc_time_formatshorttimestamp(&now, newts, PATH_MAX + 1);
n = snprintf(newpath, sizeof(newpath), "%s.%s", path, newts);
if (n >= (int)sizeof(newpath) || n < 0) {
{
isc_time_t isctime;
- TIME_NOW(&isctime);
+ isctime = isc_time_now();
isc_time_formattimestamp(&isctime, local_time,
sizeof(local_time));
* messages which fall within the
* duplicate_interval range.
*/
- TIME_NOW(&oldest);
+ oldest = isc_time_now();
if (isc_time_subtract(&oldest, &interval,
&oldest) != ISC_R_SUCCESS)
{
message->text = (char *)(message + 1);
size -= sizeof(isc_logmessage_t);
strlcpy(message->text, lctx->buffer, size);
- TIME_NOW(&message->time);
+ message->time = isc_time_now();
ISC_LINK_INIT(message, link);
ISC_LIST_APPEND(lctx->messages, message, link);
}
return (false);
}
-static isc_result_t
-time_now(isc_time_t *t, clockid_t clock) {
+static isc_time_t
+time_now(clockid_t clock) {
+ isc_time_t t;
struct timespec ts;
- REQUIRE(t != NULL);
-
- if (clock_gettime(clock, &ts) == -1) {
- UNEXPECTED_SYSERROR(errno, "clock_gettime()");
- return (ISC_R_UNEXPECTED);
- }
-
- if (ts.tv_sec < 0 || ts.tv_nsec < 0 || ts.tv_nsec >= NS_PER_SEC) {
- return (ISC_R_UNEXPECTED);
- }
+ RUNTIME_CHECK(clock_gettime(clock, &ts) == 0);
+ INSIST(ts.tv_sec >= 0 && ts.tv_nsec >= 0 && ts.tv_nsec < NS_PER_SEC);
/*
* Ensure the tv_sec value fits in t->seconds.
*/
- if (sizeof(ts.tv_sec) > sizeof(t->seconds) &&
- ((ts.tv_sec | (unsigned int)-1) ^ (unsigned int)-1) != 0U)
- {
- return (ISC_R_RANGE);
- }
+ INSIST(sizeof(ts.tv_sec) <= sizeof(t.seconds) ||
+ ((ts.tv_sec | (unsigned int)-1) ^ (unsigned int)-1) == 0U);
- t->seconds = ts.tv_sec;
- t->nanoseconds = ts.tv_nsec;
+ t.seconds = ts.tv_sec;
+ t.nanoseconds = ts.tv_nsec;
- return (ISC_R_SUCCESS);
+ return (t);
}
-isc_result_t
-isc_time_now_hires(isc_time_t *t) {
- return time_now(t, CLOCKSOURCE_HIRES);
+isc_time_t
+isc_time_now_hires(void) {
+ return (time_now(CLOCKSOURCE_HIRES));
}
-isc_result_t
-isc_time_now(isc_time_t *t) {
- return time_now(t, CLOCKSOURCE);
+isc_time_t
+isc_time_now(void) {
+ return (time_now(CLOCKSOURCE));
}
isc_nanosecs_t
client->state = NS_CLIENTSTATE_WORKING;
- TIME_NOW(&client->requesttime);
+ client->requesttime = isc_time_now();
client->tnow = client->requesttime;
client->now = isc_time_seconds(&client->tnow);
dns_db_attach(db, &xfr->db);
dns_db_attachversion(db, ver, &xfr->ver);
- isc_time_now(&xfr->stats.start);
+ xfr->stats.start = isc_time_now();
isc_nm_timer_create(xfr->client->handle, xfrout_client_timeout, xfr,
&xfr->maxtime_timer);
uint64_t msecs, persec;
inc_stats(xfr->client, xfr->zone, ns_statscounter_xfrdone);
- isc_time_now(&xfr->stats.end);
+ xfr->stats.end = isc_time_now();
msecs = isc_time_microdiff(&xfr->stats.end, &xfr->stats.start);
msecs /= 1000;
if (msecs == 0) {
static void
time_it(copy_fn *copier, void *a, void *b, const char *name) {
isc_time_t start;
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
copier(a, b, SIZE);
isc_time_t finish;
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
uint64_t microseconds = isc_time_microdiff(&finish, &start);
printf("%f for %s\n", (double)microseconds / 1000000.0, name);
unsigned int repeat = 100;
isc_time_t start;
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
for (unsigned int n = 0; n < repeat; n++) {
static uint8_t wire[4 * 1024];
}
isc_time_t finish;
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
uint64_t microseconds = isc_time_microdiff(&finish, &start);
printf("time %f / %u\n", (double)microseconds / 1000000.0, repeat);
static void
oldnew_bench(const uint8_t *data, size_t size) {
isc_time_t t0;
- isc_time_now_hires(&t0);
+ t0 = isc_time_now_hires();
uint32_t n1 = old_bench(data, size);
isc_time_t t1;
- isc_time_now_hires(&t1);
+ t1 = isc_time_now_hires();
uint32_t n2 = new_bench(data, size);
isc_time_t t2;
- isc_time_now_hires(&t2);
+ t2 = isc_time_now_hires();
double t01 = (double)isc_time_microdiff(&t1, &t0);
double t12 = (double)isc_time_microdiff(&t2, &t1);
saltlen, inlen);
fflush(stdout);
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
int i = 0;
while (i++ < count) {
isc_iterated_hash(out, 1, iterations, salt, saltlen, in, inlen);
}
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
uint64_t microseconds = isc_time_microdiff(&finish, &start);
printf("%0.2f us per iterated_hash()\n", (double)microseconds / count);
for (struct fun *fun = fun_list; fun->name != NULL; fun++) {
isc_time_t t0;
- isc_time_now_hires(&t0);
+ t0 = isc_time_now_hires();
isc_mem_t *mem = NULL;
isc_mem_create(&mem);
fun->sqz(map);
isc_time_t t1;
- isc_time_now_hires(&t1);
+ t1 = isc_time_now_hires();
for (count = 0; count < lines; count++) {
void *pval = NULL;
}
isc_time_t t2;
- isc_time_now_hires(&t2);
+ t2 = isc_time_now_hires();
printf("%f sec to load %s\n",
(double)isc_time_microdiff(&t1, &t0) / (1000.0 * 1000.0),
uint64_t sum = 0;
uint64_t us;
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
for (size_t end = len; end < SIZE; end += len) {
uint64_t hash;
count++;
}
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
us = isc_time_microdiff(&finish, &start);
printf("%f us wide-lower len %3zu, %7.0f kh/s (%llx)\n",
uint64_t sum = 0;
uint64_t us;
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
for (size_t end = len; end < SIZE; end += len) {
uint64_t hash;
count++;
}
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
us = isc_time_microdiff(&finish, &start);
printf("%f us wide-icase len %3zu, %7.0f kh/s (%llx)\n",
uint64_t sum = 0;
uint64_t us;
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
for (size_t end = len; end < SIZE; end += len) {
uint64_t hash;
count++;
}
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
us = isc_time_microdiff(&finish, &start);
printf("%f us wide-bytes len %3zu, %7.0f kh/s (%llx)\n",
uint64_t sum = 0;
uint64_t us;
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
for (size_t end = len; end < SIZE; end += len) {
uint32_t hash;
count++;
}
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
us = isc_time_microdiff(&finish, &start);
printf("%f us half-lower len %3zu, %7.0f kh/s (%llx)\n",
uint64_t sum = 0;
uint64_t us;
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
for (size_t end = len; end < SIZE; end += len) {
uint32_t hash;
count++;
}
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
us = isc_time_microdiff(&finish, &start);
printf("%f us half-icase len %3zu, %7.0f kh/s (%llx)\n",
uint64_t sum = 0;
uint64_t us;
- isc_time_now_hires(&start);
+ start = isc_time_now_hires();
for (size_t end = len; end < SIZE; end += len) {
uint32_t hash;
count++;
}
- isc_time_now_hires(&finish);
+ finish = isc_time_now_hires();
us = isc_time_microdiff(&finish, &start);
printf("%f us half-bytes len %3zu, %7.0f kh/s (%llx)\n",
node->data = (void *)(intptr_t)i;
}
- result = isc_time_now(&ts1);
- assert_int_equal(result, ISC_R_SUCCESS);
+ ts1 = isc_time_now();
nthreads = ISC_MIN(isc_os_ncpus(), 32);
nthreads = ISC_MAX(nthreads, 1);
isc_thread_join(threads[i], NULL);
}
- result = isc_time_now(&ts2);
- assert_int_equal(result, ISC_R_SUCCESS);
+ ts2 = isc_time_now();
t = isc_time_microdiff(&ts2, &ts1);
UNUSED(arg);
- TIME_NOW(&now);
+ now = isc_time_now();
dns_zonemgr_create(mctx, loopmgr, netmgr, &myzonemgr);
isc_thread_t threads[32];
isc_time_t ts1, ts2;
double t;
- isc_result_t result;
atomic_init(&mem_size, ITEM_SIZE);
- result = isc_time_now(&ts1);
- assert_int_equal(result, ISC_R_SUCCESS);
+ ts1 = isc_time_now();
for (int i = 0; i < nthreads; i++) {
isc_thread_create(mem_thread, mctx, &threads[i]);
isc_thread_join(threads[i], NULL);
}
- result = isc_time_now(&ts2);
- assert_int_equal(result, ISC_R_SUCCESS);
+ ts2 = isc_time_now();
t = isc_time_microdiff(&ts2, &ts1);
ticks++;
- assert_int_equal(isc_time_now(&tick_time), ISC_R_SUCCESS);
+ tick_time = isc_time_now();
isc_ratelimiter_shutdown(rl);
isc_ratelimiter_detach(&rl);
ISC_LOOP_SETUP_IMPL(ratelimiter_common) {
assert_null(rl);
isc_time_set(&tick_time, 0, 0);
- assert_int_equal(isc_time_now(&start_time), ISC_R_SUCCESS);
+ start_time = isc_time_now();
isc_ratelimiter_create(mainloop, &rl);
}
isc_mem_put(mctx, rlstat, sizeof(*rlstat));
ticks++;
- assert_int_equal(isc_time_now(&tock_time), ISC_R_SUCCESS);
+ tock_time = isc_time_now();
}
ISC_LOOP_SETUP_IMPL(ratelimiter_pertick_interval) {
UNUSED(state);
setenv("TZ", "America/Los_Angeles", 1);
- result = isc_time_now(&t);
- assert_int_equal(result, ISC_R_SUCCESS);
+ t = isc_time_now();
isc_time_formathttptimestamp(&t, buf, sizeof(buf));
result = isc_time_parsehttptimestamp(buf, &x);
/* print UTC in ISO8601 */
ISC_RUN_TEST_IMPL(isc_time_formatISO8601_test) {
- isc_result_t result;
isc_time_t t;
char buf[64];
UNUSED(state);
setenv("TZ", "America/Los_Angeles", 1);
- result = isc_time_now(&t);
- assert_int_equal(result, ISC_R_SUCCESS);
+ t = isc_time_now();
/* check formatting: yyyy-mm-ddThh:mm:ssZ */
memset(buf, 'X', sizeof(buf));
/* print UTC in ISO8601 with milliseconds */
ISC_RUN_TEST_IMPL(isc_time_formatISO8601ms_test) {
- isc_result_t result;
isc_time_t t;
char buf[64];
UNUSED(state);
setenv("TZ", "America/Los_Angeles", 1);
- result = isc_time_now(&t);
- assert_int_equal(result, ISC_R_SUCCESS);
+ t = isc_time_now();
/* check formatting: yyyy-mm-ddThh:mm:ss.sssZ */
memset(buf, 'X', sizeof(buf));
/* print UTC in ISO8601 with microseconds */
ISC_RUN_TEST_IMPL(isc_time_formatISO8601us_test) {
- isc_result_t result;
isc_time_t t;
char buf[64];
UNUSED(state);
setenv("TZ", "America/Los_Angeles", 1);
- result = isc_time_now_hires(&t);
- assert_int_equal(result, ISC_R_SUCCESS);
+ t = isc_time_now_hires();
/* check formatting: yyyy-mm-ddThh:mm:ss.ssssssZ */
memset(buf, 'X', sizeof(buf));
/* print local time in ISO8601 */
ISC_RUN_TEST_IMPL(isc_time_formatISO8601L_test) {
- isc_result_t result;
isc_time_t t;
char buf[64];
UNUSED(state);
setenv("TZ", "America/Los_Angeles", 1);
- result = isc_time_now(&t);
- assert_int_equal(result, ISC_R_SUCCESS);
+ t = isc_time_now();
/* check formatting: yyyy-mm-ddThh:mm:ss */
memset(buf, 'X', sizeof(buf));
/* print local time in ISO8601 with milliseconds */
ISC_RUN_TEST_IMPL(isc_time_formatISO8601Lms_test) {
- isc_result_t result;
isc_time_t t;
char buf[64];
UNUSED(state);
setenv("TZ", "America/Los_Angeles", 1);
- result = isc_time_now(&t);
- assert_int_equal(result, ISC_R_SUCCESS);
+ t = isc_time_now();
/* check formatting: yyyy-mm-ddThh:mm:ss.sss */
memset(buf, 'X', sizeof(buf));
/* print local time in ISO8601 with microseconds */
ISC_RUN_TEST_IMPL(isc_time_formatISO8601Lus_test) {
- isc_result_t result;
isc_time_t t;
char buf[64];
UNUSED(state);
setenv("TZ", "America/Los_Angeles", 1);
- result = isc_time_now_hires(&t);
- assert_int_equal(result, ISC_R_SUCCESS);
+ t = isc_time_now_hires();
/* check formatting: yyyy-mm-ddThh:mm:ss.ssssss */
memset(buf, 'X', sizeof(buf));
/* print UTC time as yyyymmddhhmmsssss */
ISC_RUN_TEST_IMPL(isc_time_formatshorttimestamp_test) {
- isc_result_t result;
isc_time_t t;
char buf[64];
UNUSED(state);
setenv("TZ", "America/Los_Angeles", 1);
- result = isc_time_now(&t);
- assert_int_equal(result, ISC_R_SUCCESS);
+ t = isc_time_now();
/* check formatting: yyyymmddhhmmsssss */
memset(buf, 'X', sizeof(buf));
isc_timertype_t timertype = ((setup_test_arg_t *)data)->timertype;
isc_interval_t *interval = ((setup_test_arg_t *)data)->interval;
isc_job_cb action = ((setup_test_arg_t *)data)->action;
- isc_result_t result;
isc_mutex_lock(&lasttime_mx);
- result = isc_time_now(&lasttime);
+ lasttime = isc_time_now();
UNLOCK(&lasttime_mx);
- assert_int_equal(result, ISC_R_SUCCESS);
isc_timer_create(mainloop, action, (void *)timertype, &timer);
isc_timer_start(timer, timertype, interval);
print_message("# tick %d\n", tick);
}
- result = isc_time_now(&now);
- subthread_assert_result_equal(result, ISC_R_SUCCESS);
+ now = isc_time_now();
isc_interval_set(&interval, seconds, nanoseconds);
isc_mutex_lock(&lasttime_mx);
subthread_assert_result_equal(result, ISC_R_SUCCESS);
if (atomic_load(&eventcnt) == nevents) {
- result = isc_time_now(&endtime);
- subthread_assert_result_equal(result, ISC_R_SUCCESS);
+ endtime = isc_time_now();
isc_timer_destroy(&timer);
isc_loopmgr_shutdown(loopmgr);
}
print_message("# tick %d\n", tick);
}
- result = isc_time_now(&now);
- subthread_assert_result_equal(result, ISC_R_SUCCESS);
+ now = isc_time_now();
isc_interval_set(&interval, seconds, nanoseconds);
isc_mutex_lock(&lasttime_mx);
* Check expired time.
*/
- result = isc_time_now(&now);
- subthread_assert_result_equal(result, ISC_R_SUCCESS);
+ now = isc_time_now();
isc_interval_set(&interval, seconds, nanoseconds);
isc_mutex_lock(&lasttime_mx);
if (result != ISC_R_SUCCESS) {
return (result);
}
- TIME_NOW(&client->tnow);
+ client->tnow = isc_time_now();
/*
* Every client needs to belong to a view.