mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
tstream: Make socketpair nonblocking
When we have a large RPC reply, we can't block in the RPC server. Test: Do rpcclient netshareenumall with a thousand shares defined Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
2f2cdaf644
commit
ab26e84da1
@ -1468,17 +1468,23 @@ int _tstream_npa_socketpair(uint16_t file_type,
|
||||
fd1 = fds[0];
|
||||
fd2 = fds[1];
|
||||
|
||||
rc = set_blocking(fd1, false);
|
||||
if (rc == -1) {
|
||||
goto close_fail;
|
||||
}
|
||||
|
||||
rc = set_blocking(fd2, false);
|
||||
if (rc == -1) {
|
||||
goto close_fail;
|
||||
}
|
||||
|
||||
rc = _tstream_npa_existing_socket(mem_ctx1,
|
||||
fd1,
|
||||
file_type,
|
||||
&stream1,
|
||||
location);
|
||||
if (rc == -1) {
|
||||
int sys_errno = errno;
|
||||
close(fd1);
|
||||
close(fd2);
|
||||
errno = sys_errno;
|
||||
return -1;
|
||||
goto close_fail;
|
||||
}
|
||||
|
||||
rc = _tstream_npa_existing_socket(mem_ctx2,
|
||||
@ -1498,4 +1504,13 @@ int _tstream_npa_socketpair(uint16_t file_type,
|
||||
*pstream2 = stream2;
|
||||
|
||||
return 0;
|
||||
|
||||
close_fail:
|
||||
{
|
||||
int sys_errno = errno;
|
||||
close(fd1);
|
||||
close(fd2);
|
||||
errno = sys_errno;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user