This issue continues our look at what's coming up in
the ACE 5.6 release. The February
, March,
April,
May,
and June
newsletters also contained articles in this series looking at
what's coming in the next ACE release, ACE 5.6. If you're a
new subscriber, please review the previous articles for
information that may affect you.
This article is the sixth in the "What's Coming" series and
we'll continue until ACE 5.6 is released (scheduled for late
August or early September). As with the previous articles, we
note that all user-visible changes to ACE are described in the
ACE_wrappers/NEWS file of each ACE beta as
development progresses. You can review that file here.
This article describes two changes to existing
functionality that were made in the most recent beta, ACE
5.5.10. Please review these changes to determine if they will
have any impact on your applications.
- ACE_utsname struct
- ACE_INET_Addr and IPv6
The ACE_utsname struct, used in the
ACE_OS::uname() function when the platform
doesn't provide the standard utsname struct, was
changed. It defines a number of text fields and their types
were changed from ACE_TCHAR[] to
char[] in order to be consistent with all other
platforms. This change removes the need to write different
code for platforms where ACE_LACKS_UTSNAME_T is
set and that have wide characters.
Windows is the most prominent platform affected by the
ACE_utsname change. In particular, if your
application uses ACE_OS::utsname() and you build
with wide-characters enabled (ACE_USES_WCHAR
defined), you will need to change your access to these fields
to expect narrow characters.
The second change that may have a run-time affect on
your applications is a change to ACE_INET_Addr::set
(u_short port, char *host_name, ...). This method now
favors IPv6 addresses when compiled with
ACE_HAS_IPV6 defined and the supplied address
family is AF_UNSPEC. This means that if
host_name has an IPv6 address in DNS or
/etc/hosts, that will be used over an IPv4 address. If no IPv6
address exists for host_name, then its IPv4
address will be used. The previous behavior was ad-hoc
ordering/preference depending on platform. This change unifies
disparate behavior across platforms.
If you want to experiment with these changes before ACE 5.6
is released, grab a copy of the latest ACE beta
and try it out! If you get stuck or have questions, our new
Whitewater Level of ACE support can help you get going
quickly.