summaryrefslogtreecommitdiff
path: root/docs-xml
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2020-06-03 10:57:59 +0200
committerStefan Metzmacher <metze@samba.org>2020-07-08 15:54:40 +0000
commit3cd775af053f95a35492e66299110d4087c452d0 (patch)
treedf1b629ca33728714c02d7d6dc2cb95d883a1233 /docs-xml
parent557adf8ccccf0aed8084ffde0dfeecc5695b5265 (diff)
downloadsamba-3cd775af053f95a35492e66299110d4087c452d0.tar.gz
s3:smbd: add infrastructure to wait for TCP acks
This will be the core of the logic that allows us to retry break notifications. When we start the "pending break cycle" we ask for the current retransmission timemout (rto) on the TCP connection and remember how many unacked bytes are in the kernel's send queue. Each time we send bytes into the kernel we add them to the unacked bytes. We use a timer using the rto interval in order to check the amount of unacked bytes again. The provides send_queu_entry.ack.req will be completed with tevent_req_done() when everything is completely acked, tevent_req_nterror(NT_STATUS_IO_TIMEOUT) when send_queu_entry.ack.timeout is expired or tevent_req_nterror(connection_error) when the connection gets disconnected. It works with support from the FreeBSD and Linux kernels. For other platforms we just have a fixed rto of 1 second. And pretend all bytes are acked when we recheck after 1 second. So only a connection error could trigger tevent_req_nterror(), but there's no timeout. A follow up commit will most likely disable support for multi-channel if we don't have kernel support. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11897 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Günther Deschner <gd@samba.org>
Diffstat (limited to 'docs-xml')
0 files changed, 0 insertions, 0 deletions