This commit preserves errno properly in the following cases:
- new_socket() was previously discarding errno in some cases,
and replacing it with the result of getsockname().
- uv__close() was not preserving errno when __MVS__ is defined.
Fixes: https://github.com/libuv/libuv/issues/1756
PR-URL: https://github.com/libuv/libuv/pull/1763
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>