Esempio n. 1
0
void
dns_rdataset_trimttl(dns_rdataset_t *rdataset, dns_rdataset_t *sigrdataset,
		     dns_rdata_rrsig_t *rrsig, isc_stdtime_t now,
		     isc_boolean_t acceptexpired)
{
	isc_uint32_t ttl = 0;

	REQUIRE(DNS_RDATASET_VALID(rdataset));
	REQUIRE(DNS_RDATASET_VALID(sigrdataset));
	REQUIRE(rrsig != NULL);

	/*
	 * If we accept expired RRsets keep them for no more than 120 seconds.
	 */
	if (acceptexpired &&
	    (isc_serial_le(rrsig->timeexpire, ((now + 120) & 0xffffffff)) ||
	     isc_serial_le(rrsig->timeexpire, now)))
		ttl = 120;
	else if (isc_serial_ge(rrsig->timeexpire, now))
		ttl = rrsig->timeexpire - now;

	ttl = ISC_MIN(ISC_MIN(rdataset->ttl, sigrdataset->ttl),
		      ISC_MIN(rrsig->originalttl, ttl));
	rdataset->ttl = ttl;
	sigrdataset->ttl = ttl;
}
Esempio n. 2
0
int main ()
{
    isc_uint32_t a, b;

    char buf[1024];

    char *s, *e;

    while (fgets (buf, sizeof (buf), stdin) != NULL)
    {
        buf[sizeof (buf) - 1] = '\0';
        s = buf;
        a = strtoul (s, &e, 0);
        if (s == e)
            continue;
        s = e;
        b = strtoul (s, &e, 0);
        if (s == e)
            continue;
        fprintf (stdout, "%u %u gt:%d lt:%d ge:%d le:%d eq:%d ne:%d\n",
                 a, b,
                 isc_serial_gt (a, b), isc_serial_lt (a, b),
                 isc_serial_ge (a, b), isc_serial_le (a, b), isc_serial_eq (a, b), isc_serial_ne (a, b));
    }
    return (0);
}