<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 29, 2014 at 5:07 PM, Jonathon Jongsma <span dir="ltr"><<a href="mailto:jjongsma@redhat.com" target="_blank">jjongsma@redhat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Fri, 2014-08-29 at 09:55 +0200, Christophe Fergeau wrote:<br>
> Hey,<br>
><br>
> On Thu, Aug 28, 2014 at 10:19:04PM +0200, Marc-André Lureau wrote:<br>
> > Make sure we send a xfer data message for 0-size files.<br>
> > This avoid leaking file descriptiors in guest agent when<br>
> > copying such files.<br>
><br>
> Has this been tested or should I give it a try? ACK if this has been<br>
> tested. You could add a note that the bug was reported by Cody maybe<br>
<br>
</div>Is there any way for the agent to avoid leaking file descriptors even in<br>
the face of a poorly-behaving client?<br>
<div class="HOEnZb"><div class="h5"><br></div></div></blockquote><div><br>Well, it could lazily open the file. But if the client is broken in other ways and doesn't transmit the whole file, it will also "leak" the fd.<br>
<br></div><div>Most download operations have timeout. Arguably, this is a user triggered action, so if the file is idle for a few minutes, transfer should be cancelled.<br><br>Tbh, I wouldn't put too much efforts in xfer in general. Once people start using shared folder, they can use or copy files around with "native" tools and have better desktop integration in general.<br>
</div><div><br></div><div>For file DND in general, this is a more tricky question, but the plan is to rely on the share folder to do that - uri links would be converted to local shared folder "virtual" links, such as ~/.spice/dnd-ID/fileN that the client will interpret to match the file to be copied. That way, we get native integration for file copy operations (nautilus/explorer progression dialog, cancel buttons, timeout etc)<br>
</div><div><br></div></div>-- <br>Marc-André Lureau
</div></div>