mirror of
http://galexander.org/git/simplesshd.git
synced 2024-12-28 00:48:07 +00:00
musings about scp
This commit is contained in:
parent
93760bfb7b
commit
3fae66e571
30
NOTES
30
NOTES
@ -72,6 +72,36 @@ it uses select(), I'm not sure how I would honor Thread.interrupt() or
|
||||
whatever. It's not guaranteed to interrupt select(), and I'm not keen on
|
||||
adding an arbitrary timeout/polling feature to it.
|
||||
|
||||
|
||||
December 20, 2014.
|
||||
|
||||
So, I added a builtin scp endpoint. It was pretty straight forward,
|
||||
except dropbear defaults to vfork(), which blocks the parent until the
|
||||
child runs execve()!!
|
||||
|
||||
Anyways, I noticed that scp doesn't quote it's arguments to the remote
|
||||
scp. That means youcan't conveniently copy a remote file with a space in
|
||||
its name (it becomes two files). But the upside is that this is where
|
||||
wildcards are handled -- by the shell!
|
||||
|
||||
So I need to either run it as a separate executable launched through the
|
||||
shell, or make my own implementation of wildcards.
|
||||
|
||||
It is easy, using a $(BUILD_EXECUTABLE) script, to get ndk to build an
|
||||
executable. But it is only packaged up if it is named "gdbserver" (and
|
||||
debug apk), or "libfoo.so". The good news is that libfoo.so can be
|
||||
executed in /data/data/org.galexander.sshd/lib/libfoo.so, so that is a
|
||||
viable option.
|
||||
|
||||
Doing the expansion myself is not necessarily hard either, though. I
|
||||
need a library function called glob(), which is apparently not part of
|
||||
bionic. But I have the idea some cut and paste would resolve that with
|
||||
very little extra work on my part.
|
||||
|
||||
|
||||
|
||||
XXX - fix scp "protocol error"
|
||||
XXX - honor scp wildcards somehow
|
||||
XXX - zlib
|
||||
XXX - rsync
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user