*** ares.h.old	Sun Mar 21 04:27:03 2004
--- ares.h	Sun Mar 21 05:52:55 2004
***************
*** 91,96 ****
--- 91,135 ----
    char *lookups;
  };
  
+ struct ares_mx_record {
+   unsigned int preference;
+   char *domain;
+ };
+ 
+ struct ares_srv_record {
+   unsigned int priority;
+   unsigned int weight;
+   unsigned int port;
+   char *target;
+ };
+ 
+ struct ares_soa_record {
+   char *master;
+   char *mailbox;
+   unsigned int serial;
+   unsigned int refresh;
+   unsigned int retry;
+   unsigned int expire;
+   unsigned int minimum;
+ };
+ 
+ struct ares_record {
+   struct ares_record *next;
+   char *domain;
+   unsigned type;
+   unsigned class;
+   unsigned ttl;
+   unsigned size;
+   union {
+     void *data;
+     struct ares_mx_record *mx, *afsdb;
+     struct ares_srv_record *srv;
+     struct ares_soa_record *soa;
+     struct in_addr *a;
+     char *txt, *ns, *ptr, *cname;
+   } data;
+ };
+ 
  struct hostent;
  struct timeval;
  struct ares_channeldata;
***************
*** 129,134 ****
--- 168,176 ----
  		       struct hostent **host);
  int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr,
  			 int addrlen, int family, struct hostent **host);
+ int ares_parse_reply(const unsigned char *abuf, int alen, 
+ 			 struct ares_record **reply);
+ void ares_free_reply(struct ares_record *reply);
  void ares_free_string(void *str);
  void ares_free_hostent(struct hostent *host);
  const char *ares_strerror(int code);

