1 #ifndef _RESOLVPROTO_H_
2 #define _RESOLVPROTO_H_
10 /// Petición del resolver a un nameserver
11 struct ResolvProtoRequest
14 /// Tipo de petición, por ahora sólo QUERY
17 /// Tipo de petición, por ahora sólo QUERY
24 ResolvProtoRequest(int fd);
27 ResolvProtoRequest(std::string name, uint8_t type = TYPE_QUERY);
30 void send(int sockfd) const throw (std::runtime_error);
33 void recv(int sockfd) throw (std::runtime_error);
37 /// Impresión de request
38 std::ostream& operator<< (std::ostream& os, const ResolvProtoRequest& rpr);
41 /// Respuesta del resolver a un nameserver
42 struct ResolvProtoResponse
45 /// Resultado de la respuesta
46 enum ret_t { RET_OK, RET_NOTFOUND, RET_TIMEOUT };
48 /// Resultado de la respuesta
52 typedef std::vector< IPAddr > ipvec_t;
56 ResolvProtoResponse(int fd);
59 ResolvProtoResponse(ret_t ret);
62 void send(int sockfd) const throw (std::runtime_error);
65 void recv(int sockfd) throw (std::runtime_error);
69 /// Impresión de response
70 std::ostream& operator<< (std::ostream& os, const ResolvProtoResponse& rpr);
72 #endif // _RESOLVPROTO_H_
74 // vim: set et sw=4 sts=4 :