summaryrefslogtreecommitdiffstats
path: root/source3/lib/recvfile.c
Commit message (Collapse)AuthorAgeFilesLines
* Several fixes to our use of spliceVolker Lendecke2009-01-071-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
* Disable the use of splice(2)Volker Lendecke2008-12-311-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...
* Try to fix recvfile using splice on LinuxVolker Lendecke2008-12-311-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!
* Fix bug #5477 - recvfile code was broken.Jeremy Allison2008-05-201-0/+10
| | | | | Jeremy. (This used to be commit 830337f054a6c0646d85df33d9958e99283e727a)
* Enable tests for splice on Linux. Add a static (vl, I hate this)Jeremy Allison2008-05-061-2/+19
| | | | | | | so we can detect broken Linux recvfile splice and correctly fall back. Jeremy. (This used to be commit ec2d301a7aac173aba41dd2074037f27d05095ce)
* Make explicit draining the socket on RECVFILE. AddJeremy Allison2007-10-311-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)
* Handle the disk full error case correctly.Jeremy Allison2007-10-301-6/+25
| | | | | Jeremy. (This used to be commit b7088bb9c2a00d4717b9a7efa4bddc0c005f4efb)
* Add new parameter, "min receivefile size" (by default setJeremy Allison2007-10-301-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)
* Forgot to add recvfile.cJeremy Allison2007-10-291-0/+158
Jeremy. (This used to be commit d5886218e53910b7015e6f13bc634e1bf338565a)