freebsd-dev/sys
Ed Schouten 72c8072ee5 Make asynchronous connection failures on UNIX sockets fail with ECONNRESET.
While making CloudABI work well on Linux, I discovered that I had a
FreeBSD-ism in one of my unit tests. The test did the following:

- Create UNIX socket 1, bind it, make it listen.
- Create UNIX socket 2, connect it to UNIX socket 1.
- Close UNIX socket 1.
- Obtain SO_ERROR from socket 2.

On FreeBSD this returns ECONNABORTED, while on Linux it returns
ECONNRESET. I dug through some of the relevant specifications[1] and it
looks like Linux is all right here. ECONNABORTED should only be returned
when the local connection (socket 2) is aborted; not the peer (socket 1).

It is of course slightly misleading: the function in which we set this
error is called uipc_abort(), but keep in mind that we're aborting the
peer, thus resetting the local socket.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/connect.html

Reviewed by:	cem
Sponsored by:	Nuxi, the Netherlands
Differential Revision:	https://reviews.freebsd.org/D5419
2016-02-24 17:10:32 +00:00
..
amd64 Return dst as the result from memcpy(9) on amd64. 2016-02-24 11:58:15 +00:00
arm Remove redundant __ARM_ARCH >= 6 check in armv6 specific files. 2016-02-23 10:12:50 +00:00
arm64 Make pci_host_generic and thunderx_pci common 2016-02-24 06:05:30 +00:00
boot Add support for symmetric multiprocessing (SMP). 2016-02-24 16:50:34 +00:00
bsm
cam Remove a stray else. It isn't needed (due to the return at the end of 2016-02-18 15:12:52 +00:00
cddl As <machine/vmparam.h> is included from <vm/vm_param.h>, there is no 2016-02-22 09:08:04 +00:00
compat Call cap_rights_init() properly. 2016-02-24 10:54:26 +00:00
conf Add support for symmetric multiprocessing (SMP). 2016-02-24 16:50:34 +00:00
contrib Optimize ROL and ROR emulations and fix comments. 2016-02-18 23:03:37 +00:00
crypto
ddb
dev hyperv/vmbus: Use free(9) for interrupt page; it is allocated by malloc(9) 2016-02-24 08:54:50 +00:00
fs Ext2: cleanup setting of ctime/mtime/birthtime. 2016-02-19 15:53:08 +00:00
gdb
geom Fixes to make it compile under gcc-4.2. 2016-02-24 02:52:49 +00:00
gnu Update our copy of the Linux dts files to be in sync with Linux 4.5-rc1. We 2016-02-09 16:42:32 +00:00
i386 As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
isa Replace several bus_alloc_resource() calls using default arguments with bus_alloc_resource_any() 2016-02-19 03:37:56 +00:00
kern Make asynchronous connection failures on UNIX sockets fail with ECONNRESET. 2016-02-24 17:10:32 +00:00
kgssapi kcrypto_aes: Use separate sessions for AES and SHA1 2016-02-02 00:14:51 +00:00
libkern
mips Migrate UNCOMPRESS -> UZIP 2016-02-24 03:06:26 +00:00
modules hyperv/utils: Code rearrange and cleanup 2016-02-24 05:01:18 +00:00
net Fix regression introduced on 272446r. 2016-02-19 06:35:53 +00:00
net80211 net80211: fix TIM cleanup. 2016-02-23 21:11:42 +00:00
netgraph These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
netinet Fix build after r29592. 2016-02-23 21:21:47 +00:00
netinet6 Don't leak an address in an error path. 2016-02-23 18:50:34 +00:00
netipsec Fix useless check. m_pkthdr.len should be equal to orglen. 2016-02-24 12:28:49 +00:00
netnatm
netpfil Fix bug in filling and handling ipfw's O_DSCP opcode. 2016-02-24 13:16:03 +00:00
netsmb
nfs MFP r287070,r287073: split radix implementation and route table structure. 2016-01-25 06:33:15 +00:00
nfsclient
nfsserver
nlm
ofed LinuxKPI list updates: 2016-01-26 15:12:31 +00:00
opencrypto
pc98 Convert rman to use rman_res_t instead of u_long 2016-01-27 02:23:54 +00:00
powerpc Allow the size argument for law_enable() to be non-power-of-2. 2016-02-23 02:28:19 +00:00
riscv Add support for symmetric multiprocessing (SMP). 2016-02-24 16:50:34 +00:00
rpc These files were getting sys/malloc.h and vm/uma.h with header pollution 2016-02-01 17:41:21 +00:00
security Busy the mount point which is the owner of the audit vnode, around 2016-01-16 10:06:33 +00:00
sparc64 As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
sys Provide more correct sizing of the KVA consumed by a vnode, used by 2016-02-24 15:15:46 +00:00
teken
tests
tools Fix MFS builds when both MD_ROOT_SIZE and MFS_IMAGE are specified 2016-02-02 07:02:51 +00:00
ufs The UFS filesystem requires that the last block of a file always be 2016-02-24 01:58:40 +00:00
vm Include sys/_task.h into uma_int.h, so that taskqueue.h isn't a 2016-02-09 20:22:35 +00:00
x86 Silence PVS-Studio warning (V595). It can never be NULL here. 2016-02-23 23:57:24 +00:00
xdr
xen xenbus: add a comment with the names of the generated accessors 2016-01-15 14:34:31 +00:00
Makefile