6 #include "resolvproto.h"
14 /// Resolver de nombres
18 /// Zonas para las que este servidor de nombres es autoridad
19 typedef ResolvProtoResponse::ipvec_t ipvec_t;
26 /// Colas de recepción
30 Resolver(std::istream& is, IPIn& ipin, IPOut& ipout, DevQue& res_que)
31 throw (std::runtime_error);
33 /// Resultado de la petición
36 OK, ///> Respuesta válida
37 HOST_NOT_FOUND, ///> No se encuentra dicho host
38 NO_RECOVERY, ///> Error irreparable (por ejemplo, no hay nameservers)
39 TRY_AGAIN ///> Error temporal (por ejemplo, timeout)
42 /// Obtiene la(s) IP de un host a través de su nombre de dominio
43 result_t gethostbyname(const std::string& name, ipvec_t& ips);
45 /// Consulta a otro name server sobre un nombre
46 ResolvProtoResponse query(const std::string& name, const IPAddr& ip);
48 /// Loop que recibe y carga los paquetes en las colas para ser procesados
53 /// Impresión (para debug)
54 std::ostream& operator<< (std::ostream& os, const Resolver& res);
55 std::ostream& operator<< (std::ostream& os, const Resolver::ipvec_t& ips);
57 #endif // _RESOLVER_H_
59 // vim: set et sw=4 sts=4 :