libc/winsup/cygwin/release/1.7.26
Corinna Vinschen 5b56e9b02b * autoload.cc (IdnToAscii): Define.
(IdnToUnicode): Define.
	(FreeAddrInfoW): Define.
	(GetAddrInfoW): Define.
	(GetNameInfoW): Define.
	* net.cc: Drop W. Richard STEVENS libgai implementation.
	(cygwin_freeaddrinfo): Move code from ipv4_freeaddrinfo here.  Move
	definition up in file to avoid forward declaration in ga_duplist.
	(ga_dup): Take addrinfoW as input.  Add parameters to get IDN flags
	and to set error value.  Handle IDN flags and especially AI_CANONIDN.
	Convert input wchar_t ai_canonname string to multibyte for output.
	(ga_duplist): Add parameters to get IDN flags and to set error value
	and propagate to ga_dup.  Call cygwin_freeaddrinfo.
	(gai_errmap): Add comments.  Align error strings to GLibc.  Add
	EAI_IDN_ENCODE entry.
	(get_ipv6_funcs): Remove.
	(load_ipv6_guard): Remove.
	(ipv6_inited): Remove.
	(load_ipv6): Remove.
	(load_ipv6_funcs): Remove.
	(cygwin_getaddrinfo): Drop calling load_ipv6.  Handle AI_IDN* flags.
	Convert input strings to wchar_t and call GetAddrInfoW/FreeAddrInfoW.
	In case hints is NULL, set default ai_flags explicitely to
	AI_V4MAPPED | AI_ADDRCONFIG, as documented for Glibc.  Only add AI_ALL
	if AI_ADDRCONFIG is not given.  Unconditionally add Windows-specific
	AI_DISABLE_IDN_ENCODING to ai_flags to make IDN behaviour compatible
	to Glibc even on Windows 8 and later.
	(cygwin_getnameinfo): Drop calling load_ipv6.  Handle NI_IDN* flags.
	Call GetNameInfoW and convert returned strings from wchar_t to
	multibyte.
	* include/netdb.h: Add comments to describe flags and error values.
	(AI_*): Define all flags using hex values for clearness.
	(AI_IDN): Define.
	(AI_CANONIDN): Define.
	(AI_IDN_ALLOW_UNASSIGNED): Define.
	(AI_IDN_USE_STD3_ASCII_RULES): Define.
	(NI_*): Define all flags using hex values for clearness.
	(NI_IDN): Define.
	(NI_IDN_ALLOW_UNASSIGNED): Define.
	(NI_IDN_USE_STD3_ASCII_RULES): Define.
	(EAI_IDN_ENCODE): Define.
2013-11-19 13:29:37 +00:00

59 lines
2 KiB
Plaintext

What's new:
-----------
- getaddrinfo now supports glibc-specific International Domain Name (IDN)
extension flags: AI_IDN, AI_CANONIDN, AI_IDN_ALLOW_UNASSIGNED,
AI_IDN_USE_STD3_ASCII_RULES.
- getnameinfo now supports glibc-specific International Domain Name (IDN)
extension flags: NI_IDN, NI_IDN_ALLOW_UNASSIGNED, NI_IDN_USE_STD3_ASCII_RULES.
What changed:
-------------
- Slightly improve randomness of /dev/random emulation.
- Allow to use advisory locking on any device. POSIX fcntl and lockf locking
works with any device, BSD flock locking only with devices backed by an OS
handle. Right now this excludes console windows on pre Windows 8, as well as
almost all virtual files under /proc from BSD flock locking.
- The header /usr/include/exceptions.h, containing implementation details for
32 bit Windows' exception handling only, has been removed.
Bug fixes:
----------
- pthread_atparent hook should not be called in the child.
Fixes: http://cygwin.com/ml/cygwin/2013-09/msg00365.html
- 64 bit only: Correctly mmap'ing regions > 4 Gigs.
Fixes: http://cygwin.com/ml/cygwin/2013-09/msg00155.html
- Fix random content of /proc/$PID/ctty if the process has no controlling
tty. Set to just "\n" instead.
- Properly set process sid rather than always using -1.
Fixes: http://cygwin.com/ml/cygwin/2013-10/threads.html#00237
- Fix a potential crash after calling lseek on /dev/clipboard.
- Fix a handle inheritance bug in raw disk and tape device handling which
led to EBADF errors in child processes.
- open("/dev", O_CREAT) accidentally created a /dev file if no /dev
exists at the time.
- DIR *d = opendir ("foo"); flock (dirfd (d), ...); worked, but did the
wrong thing.
- Reading from /dev/windows was broken for some time.
- select'ing on /dev/windows accidentally didn't take the setting of
ioctl (WINDOWS_HWND) into account.
- Fix typos in cygcheck which could crash Windows 8 and 8.1 machines.
Fixes: http://cygwin.com/ml/cygwin/2013-11/msg00334.html