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