std::cerr << "NameServer::resolv_recursive -> gotcha! "
<< rpr << "\n";
#endif
- // TODO agregar a cache
break;
}
return rpr; // Devuelvo el A o NOTFOUND
std::cerr << "NameServer::resolv_recursive_r -> gotcha! "
<< r << "\n";
#endif
- // TODO agregar a cache
return r; // Gotcha!
}
}
std::cerr << "NameServer::query -> recibido " << resp << " de "
<< ip << "\n";
#endif
+ // Agrego a cache
+ if (resp.ret == RP_RES_A)
+ cache[n] = CacheRecord(time(NULL) + resp.ttl, resp.ips);
return resp;
}
Dev::mac_type mac = 0;
std::string buf = snd_que.receive(mac);
#ifdef DEBUG_RESOLV
- std::cout << "NameServer::send_loop() -> envío request "
- << ResolvProtoResponse(buf) << "\n";
+ uint8_t type;
+ memcpy(&type, s.data(), sizeof(uint8_t));
+ std::cout << "NameServer::send_loop() -> envío "
+ if (type == RP_REQ_DIRECT || type == RP_REQ_RECURSIVE)
+ std::cout << "request " << ResolvProtoRequest(buf) << "\n";
+ else
+ std::cout << "response " << ResolvProtoResponse(buf) << "\n";
#endif
ipout.send(buf, RESOLV_PROTO, IPAddr(mac));
}