X-Git-Url: http://git.openwrt.org/?p=project%2Fmdnsd.git;a=blobdiff_plain;f=cache.c;h=11d359dff9c512c3608058bb150ea039d4a60181;hp=f2687e115b50a386dfdc50e1abf9210d5d028e5c;hb=42749216453719dc255c56ff72848b5472138a54;hpb=859d0ecd2a369861771e9fea354a9ef67aaf9e9a diff --git a/cache.c b/cache.c index f2687e1..11d359d 100644 --- a/cache.c +++ b/cache.c @@ -63,7 +63,7 @@ cache_service_free(struct cache_service *s) static int cache_is_expired(time_t t, uint32_t ttl, int frac) { - if (time(NULL) - t >= ttl * frac / 100) + if (monotonic_time() - t >= ttl * frac / 100) return 1; return 0; @@ -142,7 +142,7 @@ cache_service(struct interface *iface, char *entry, int hlen, int ttl) avl_for_each_element_safe(&services, s, avl, t) if (!strcmp(s->entry, entry)) { s->refresh = 50; - s->time = time(NULL); + s->time = monotonic_time(); return s; } @@ -151,7 +151,7 @@ cache_service(struct interface *iface, char *entry, int hlen, int ttl) &host_buf, hlen ? hlen + 1 : 0); s->avl.key = s->entry = strcpy(entry_buf, entry); - s->time = time(NULL); + s->time = monotonic_time(); s->ttl = ttl; s->iface = iface; s->refresh = 50; @@ -311,7 +311,7 @@ cache_answer(struct interface *iface, uint8_t *base, int blen, char *name, struc if (r) { if (!a->ttl) { DBG(1, "D -> %s %s ttl:%d\n", dns_type_string(r->type), r->record, r->ttl); - r->time = time(0) + 1 - r->ttl; + r->time = monotonic_time() + 1 - r->ttl; } else { r->ttl = a->ttl; DBG(1, "A -> %s %s ttl:%d\n", dns_type_string(r->type), r->record, r->ttl); @@ -332,7 +332,7 @@ cache_answer(struct interface *iface, uint8_t *base, int blen, char *name, struc r->ttl = a->ttl; r->port = port; r->rdlength = dlen; - r->time = time(NULL); + r->time = monotonic_time(); r->iface = iface; if (tlen)