Commit 950a0348 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Jakub Hrozek added ares_parse_txt_reply() for TXT parsing

parent 982e655c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
  Changelog for the c-ares project

* October 29, 2009 (Daniel Stenberg)
- Jakub Hrozek added ares_parse_txt_reply() for TXT parsing

* October 23, 2009 (Yang Tse)
- John Engelhart noticed an unreleased problem relative to a duplicate
  ARES_ECANCELLED error code value and missing error code description.
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ CSOURCES = ares__close_sockets.c \
  ares_parse_ns_reply.c			\
  ares_parse_ptr_reply.c		\
  ares_parse_srv_reply.c		\
  ares_parse_txt_reply.c		\
  ares_free_txt_reply.c                 \
  ares_process.c			\
  ares_query.c				\
  ares_search.c				\
+2 −1
Original line number Diff line number Diff line
This is what's new and changed in the c-ares 1.6.1 release:
This is what's new and changed in the c-ares 1.7.0 release:

Changed:

@@ -11,6 +11,7 @@ Changed:
 o new --enable-curldebug configure option
 o ARES_ECANCELLED is now sent as reason for ares_cancel()
 o added ares_parse_srv_reply()
 o added ares_parse_txt_reply()

Fixed:

+10 −0
Original line number Diff line number Diff line
@@ -436,6 +436,11 @@ struct ares_srv_reply {
  char *host;
};

struct ares_txt_reply {
  unsigned int  length;
  unsigned char *txt;
};

/*
** Parse the buffer, starting at *abuf and of length alen bytes, previously
** obtained from an ares_search call.  Put the results in *host, if nonnull.
@@ -472,6 +477,11 @@ CARES_EXTERN int ares_parse_srv_reply(const unsigned char* abuf,
                                      struct ares_srv_reply** srv_out,
                                      int *nsrvreply);

CARES_EXTERN int ares_parse_txt_reply(const unsigned char* abuf,
                                      int alen,
                                      struct ares_txt_reply** txt_out,
                                      int *nsrvreply);

CARES_EXTERN void ares_free_string(void *str);

CARES_EXTERN void ares_free_hostent(struct hostent *host);
+77 −0
Original line number Diff line number Diff line
.\"
.\" Copyright 1998 by the Massachusetts Institute of Technology.
.\"
.\" Permission to use, copy, modify, and distribute this
.\" software and its documentation for any purpose and without
.\" fee is hereby granted, provided that the above copyright
.\" notice appear in all copies and that both that copyright
.\" notice and this permission notice appear in supporting
.\" documentation, and that the name of M.I.T. not be used in
.\" advertising or publicity pertaining to distribution of the
.\" software without specific, written prior permission.
.\" M.I.T. makes no representations about the suitability of
.\" this software for any purpose.  It is provided "as is"
.\" without express or implied warranty.
.\"
.TH ARES_PARSE_TXT_REPLY 3 "27 October 2009"
.SH NAME
ares_parse_txt_reply \- Parse a reply to a DNS query of type TXT into a
struct ares_txt_reply
.SH SYNOPSIS
.nf
.B #include <ares.h>
.PP
.B int ares_parse_txt_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP,
.B                         struct ares_txt_reply **\fItxt_out\fP, int *\fIntxtreply\fP);
.fi
.SH DESCRIPTION
The
.B ares_parse_txt_reply
function parses the response to a query of type TXT into a
.I struct ares_txt_reply 
The parameters
.I abuf
and
.I alen
give the contents of the response.  The result is stored in allocated
memory and a pointer to it stored into the variable pointed to by
.IR txt_out .
The number of responses is stored into the variable pointed to by
.IR ntxtreply .
It is the caller's responsibility to free the resulting
.IR txt_out
structure when it is no longer needed.
.PP
The structure 
.I ares_txt_reply
contains the following fields:
.sp
.in +4n
.nf
struct ares_txt_reply {
  unsigned int  length;
  unsigned char *txt;
};
.fi
.in
.PP
.SH RETURN VALUES
.B ares_parse_txt_reply
can return any of the following values:
.TP 15
.B ARES_SUCCESS
The response was successfully parsed.
.TP 15
.B ARES_EBADRESP
The response was malformatted.
.TP 15
.B ARES_ENODATA
The response did not contain an answer to the query.
.TP 15
.B ARES_ENOMEM
Memory was exhausted.
.SH SEE ALSO
.BR ares_query (3)
.SH AUTHOR
Written by Jakub Hrozek <jhrozek@redhat.com>, on behalf of Red Hat, Inc http://www.redhat.com
Loading