diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2007-02-01 15:54:40 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2007-02-01 15:54:40 +0000 |
commit | 4815dd49bb1483af60dad347ff351db13178a21e (patch) | |
tree | a23c35f243dd38e078a7a649a896713c9ccb08f3 /winsup/cygwin/wincap.cc | |
parent | 328166424516fa793c932a9caa3305ad240490bf (diff) | |
download | cygnal-4815dd49bb1483af60dad347ff351db13178a21e.tar.gz cygnal-4815dd49bb1483af60dad347ff351db13178a21e.tar.bz2 cygnal-4815dd49bb1483af60dad347ff351db13178a21e.zip |
* net.cc (ga_dup): New function, taken from ga_clone with v4-in-v6
mapping addition.
(ga_clone): Just call ga_dup from here.
(ga_duplist): New function to duplicate list of struct addrinfo.
(ga_echeck): Don't check a_flags, it already happened in
cygwin_getaddrinfo.
(cygwin_freeaddrinfo): Always call ipv4_freeaddrinfo.
(cygwin_getaddrinfo): Use new wincap.supports_all_posix_ai_flags
flag rather than wincap.has_gaa_on_link_prefix. Always duplicate
WinSock's addrinfo list to a self-allocated list. Handle AI_V4MAPPED
for pre-Vista platforms supporting getaddrinfo.
* wincap.h (wincapc::supports_all_posix_ai_flags): New element.
* wincap.cc: Implement above element throughout.
* include/netdb.h: Note how AI_ADDRCONFIG is not supported pre-Vista.
Remove superfluous comment.
Diffstat (limited to 'winsup/cygwin/wincap.cc')
-rw-r--r-- | winsup/cygwin/wincap.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc index 7e9f71069..b26c78f84 100644 --- a/winsup/cygwin/wincap.cc +++ b/winsup/cygwin/wincap.cc @@ -74,6 +74,7 @@ static NO_COPY wincaps wincap_unknown = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_95 = { @@ -139,6 +140,7 @@ static NO_COPY wincaps wincap_95 = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_95osr2 = { @@ -204,6 +206,7 @@ static NO_COPY wincaps wincap_95osr2 = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_98 = { @@ -269,6 +272,7 @@ static NO_COPY wincaps wincap_98 = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_98se = { @@ -334,6 +338,7 @@ static NO_COPY wincaps wincap_98se = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_me = { @@ -399,6 +404,7 @@ static NO_COPY wincaps wincap_me = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_nt3 = { @@ -464,6 +470,7 @@ static NO_COPY wincaps wincap_nt3 = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_nt4 = { @@ -529,6 +536,7 @@ static NO_COPY wincaps wincap_nt4 = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_nt4sp4 = { @@ -594,6 +602,7 @@ static NO_COPY wincaps wincap_nt4sp4 = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_2000 = { @@ -659,6 +668,7 @@ static NO_COPY wincaps wincap_2000 = { has_recycle_dot_bin:false, has_gaa_prefixes:false, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_xp = { @@ -724,6 +734,7 @@ static NO_COPY wincaps wincap_xp = { has_recycle_dot_bin:false, has_gaa_prefixes:true, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_2003 = { @@ -789,6 +800,7 @@ static NO_COPY wincaps wincap_2003 = { has_recycle_dot_bin:false, has_gaa_prefixes:true, has_gaa_on_link_prefix:false, + supports_all_posix_ai_flags:false, }; static NO_COPY wincaps wincap_vista = { @@ -854,6 +866,7 @@ static NO_COPY wincaps wincap_vista = { has_recycle_dot_bin:true, has_gaa_prefixes:true, has_gaa_on_link_prefix:true, + supports_all_posix_ai_flags:true, }; wincapc wincap __attribute__((section (".cygwin_dll_common"), shared)); |