summaryrefslogtreecommitdiff
path: root/source3/lib/recvfile.c
AgeCommit message (Collapse)AuthorFilesLines
2009-01-07Several fixes to our use of spliceVolker Lendecke1-4/+6
The splice manpage explicitly requires loff_t as offset. Copy "offset" there. Probably not required, but I wanted to make sure it's as required. Splice blocks with large buffers. For me it worked with 16k and blocked with 32k and beyond. It would be nice to see a clarification in the manpage of splice for this behaviour. Splice if used with an offset increments the offset. From the manpage this was at least not entirely obvious :-) I haven't yet activated this (try_splice_call ist still false by default), it needs more testing. Volker
2008-12-31Disable the use of splice(2)Volker Lendecke1-1/+1
On a debian lenny installation with a kernel that calls itself 2.6.28, I could repeatably block smbd using splice. According to the output of netstat, the recvq of the TCP connection was full and at the same time according to strace smbd was stuck in a splice syscall trying to read from that TCP connection. We can not protect ourselves from this condition, as nobody will ever notify us that something is broken. So sadly we can't use splice yet at all. Maybe in 2.6.29...
2008-12-31Try to fix recvfile using splice on LinuxVolker Lendecke1-21/+36
According to the splice(2) manpage, one of the file descriptors *must* be a pipe. With this patch I could successfully run splice(2) on a debian lenny installation. Jeremy, please check!
2008-05-20Fix bug #5477 - recvfile code was broken.Jeremy Allison1-0/+10
Jeremy. (This used to be commit 830337f054a6c0646d85df33d9958e99283e727a)
2008-05-06Enable tests for splice on Linux. Add a static (vl, I hate this)Jeremy Allison1-2/+19
so we can detect broken Linux recvfile splice and correctly fall back. Jeremy. (This used to be commit ec2d301a7aac173aba41dd2074037f27d05095ce)
2007-10-31Make explicit draining the socket on RECVFILE. AddJeremy Allison1-14/+7
capability for large UNIX write if not signing and recvfile set. Cope with large UNIX write length on incoming processing. Stevef - we can now test 1-16Mb writes from CIFFS. Jeremy. (This used to be commit 8cf78776b0a44bd026cef3d74eb11cfb415f8303)
2007-10-30Handle the disk full error case correctly.Jeremy Allison1-6/+25
Jeremy. (This used to be commit b7088bb9c2a00d4717b9a7efa4bddc0c005f4efb)
2007-10-30Add new parameter, "min receivefile size" (by default setJeremy Allison1-2/+38
to zero). If non-zero, writeX calls greater than this value will be left in the socket buffer for later handling with recvfile (or userspace equivalent). Definition of recvfile for your system is left as an exercise for the reader (I'm working on getting splice working :-). Jeremy. (This used to be commit 11c03b75ddbcb6e36b231bb40a1773d1c550621c)
2007-10-29Forgot to add recvfile.cJeremy Allison1-0/+158
Jeremy. (This used to be commit d5886218e53910b7015e6f13bc634e1bf338565a)