Commit 29b6a732 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- ares.h no longer uses the HAVE_STRUCT_IN6_ADDR define check, but instead it

  now declares the private struct ares_in6_addr for all systems instead of
  relying on one possibly not present in the system.
parent 3dcd6bc5
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
  Changelog for the c-ares project
  Changelog for the c-ares project


* January 14 2009 (Daniel Stenberg)
- ares.h no longer uses the HAVE_STRUCT_IN6_ADDR define check, but instead it
  now declares the private struct ares_in6_addr for all systems instead of
  relying on one possibly not present in the system.

* January 13 2009 (Phil Blundell)
* January 13 2009 (Phil Blundell)
- ares__send_query() now varies the retry timeout pseudo-randomly to avoid
- ares__send_query() now varies the retry timeout pseudo-randomly to avoid
  packet storms when several queries were started at the same time.
  packet storms when several queries were started at the same time.
+2 −1
Original line number Original line Diff line number Diff line
@@ -2,7 +2,8 @@ This is what's new and changed in the c-ares 1.6.1 release:


Changed:
Changed:


 o 
 o in6_addr is not used in ares.h anymore, but a private ares_in6_addr is instead
   declared and used


Fixed:
Fixed:


+17 −9
Original line number Original line Diff line number Diff line
/* $Id$ */
/* $Id$ */


/* Copyright 1998 by the Massachusetts Institute of Technology.
/* Copyright 1998 by the Massachusetts Institute of Technology.
 * Copyright (C) 2007-2008 by Daniel Stenberg
 * Copyright (C) 2007-2009 by Daniel Stenberg
 *
 *
 * Permission to use, copy, modify, and distribute this
 * Permission to use, copy, modify, and distribute this
 * software and its documentation for any purpose and without
 * software and its documentation for any purpose and without
@@ -275,21 +275,29 @@ int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
int ares_expand_string(const unsigned char *encoded, const unsigned char *abuf,
int ares_expand_string(const unsigned char *encoded, const unsigned char *abuf,
                     int alen, unsigned char **s, long *enclen);
                     int alen, unsigned char **s, long *enclen);


#if !defined(HAVE_STRUCT_IN6_ADDR) && !defined(s6_addr)
/*
struct in6_addr {
 * NOTE: before c-ares 1.6.1 we would most often use the system in6_addr
 * struct below when ares itself was built, but many apps would use this
 * private version since the header checked a HAVE_* define for it. Starting
 * with 1.6.1 we always declare and use our own to stop relying on the
 * system's one.
 */
struct ares_in6_addr {
  union {
  union {
    unsigned char _S6_u8[16];
    unsigned char _S6_u8[16];
  } _S6_un;
  } _S6_un;
};
};
#define s6_addr _S6_un._S6_u8
#endif


/*
 * TODO: the structs 'addrttl' and 'addr6ttl' really should get their names
 * prefixed with ares_ to keep them in our own "name space".
 */
struct addrttl {
struct addrttl {
  struct in_addr ipaddr;
  struct in_addr ipaddr;
  int            ttl;
  int            ttl;
};
};
struct addr6ttl {
struct addr6ttl {
  struct in6_addr ip6addr;
  struct ares_in6_addr ip6addr;
  int             ttl;
  int             ttl;
};
};