sftp client: upload from pipe

Damien Miller djm at mindrot.org
Mon Jun 24 14:07:33 AEST 2019


On Sat, 22 Jun 2019, Adam Osuchowski wrote:

> Damien Miller wrote:
> > IIRC it's there because reads on named pipes can hang if nothing is
> > attached to them
> 
> And what is the problem with that?

That it can hang peoples transfers unexpectedly.

> It should break nothing if this named
> pipe was passed to sftp explicitly (I'm not talking about recursively
> uploading of directory that contains named pipes). Besides, there is
> O_NONBLOCK if it would be very necessary.

O_NONBLOCK is not a solution. There's no way to discern between "this FIFO
has nothing connected" and "this FIFO just needs a moment to start".

> > and because reading from devices can have side-effects (classic example
> > being /dev/mt)
> 
> As above, what is the problem with that?

Same as above.

>  Nobody tells anybody to use
> sftp with such devices. Sometimes, It could even be desirable if e.g.
> somebody would like to backup content of device on remote host via sftp.
> Again as above, I'm not talking about recursively uploading of directory

It's not just recursion that causes surprises, but wildcards. Say
"put /tmp/foo*" and one of the entries is a FIFO or device.

> that contains devices; only devices that are explicitly specified in
> command. If it would be a big problem, it's ok for me that sftp could
> allow uploading regular files and pipes/fifos only.

IMO the best user experience is to refuse to handle them. I'm happy to
leave sftp with some corner-case limitiations in return for it being a
generally more reliable tool.

-d


More information about the openssh-unix-dev mailing list