5 //XXX#include "resolvproto.h"
13 /// Petición del resolver a un nameserver
17 /// Nombre de un dominio dividido en tokens
18 typedef std::vector< std::string > name_t;
20 /// Registro de una zona
24 enum type_t { A, NS };
26 /// Dirección IP del registro
29 Record(type_t t, const IPAddr& i): type(t), ip(i) {}
42 typedef std::multimap< std::string, Record > records_t;
46 Zone(std::string sname, size_t ttl, const IPAddr& parent);
47 Zone(std::istream& is) throw (std::runtime_error);
52 //TODO cache de _records_ (no zonas)
54 /// Zonas para las que este servidor de nombres es autoridad
55 typedef std::vector< Zone > zones_t;
59 NameServer(std::istream& is) throw (std::runtime_error);
63 /// Impresión (para debug)
64 std::ostream& operator<< (std::ostream& os, const NameServer& ns);
65 std::ostream& operator<< (std::ostream& os, const NameServer::Record& r);
66 std::ostream& operator<< (std::ostream& os, const NameServer::Zone& z);
68 #endif // _NAMESERVER_H_
70 // vim: set et sw=4 sts=4 :