#endif
// Agrego a cache
if (resp.ret == RP_RES_A)
- cache[n] = CacheRecord(time(NULL) + resp.ttl, resp.ips);
+ cache[n] = CacheRecord(time(NULL) + resp.ttl, resp.ttl, resp.ips);
return resp;
}
/// Cache de un registro
struct CacheRecord
{
+ /// Tiempo de expiración (segundos desde el epoch)
+ size_t expire;
/// Time to live
size_t ttl;
/// Dirección IP del registro
ipvec_t ips;
/// Constructor
CacheRecord(): ttl(0) {}
- CacheRecord(size_t ttl, const ipvec_t& ips):
- ttl(ttl), ips(ips) {}
+ CacheRecord(size_t expire, size_t ttl, const ipvec_t& ips):
+ expire(expire), ttl(ttl), ips(ips) {}
};
/// Cache de records