From 88722f38f45792d43ef7108445af8020a06872a2 Mon Sep 17 00:00:00 2001 From: Simon Koch Date: Fri, 17 Jun 2016 17:27:01 +0200 Subject: [PATCH 1/2] made ssh-unknown-hostkey a public exception in packages --- src/package.lisp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/package.lisp b/src/package.lisp index 6159af8..38a230c 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -126,6 +126,7 @@ ;; CONDITIONS & SLOTS :KNOWN-HOSTS-READING-ERROR :HOST-NOT-ALLOWED-TO-CONNECT + :SSH-UNKNOWN-HOSTKEY :+TRACE-OPTIONS+ :+DISCONNECT-CODE+ :+ERROR-CODE+ From ada5dff4c9007435f76f65f6c754a571604b6128 Mon Sep 17 00:00:00 2001 From: Simon Koch Date: Thu, 27 Oct 2016 14:18:37 +0200 Subject: [PATCH 2/2] added support for streams in the scp-get function --- src/package.lisp | 2 +- src/scp.lisp | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/package.lisp b/src/package.lisp index 38a230c..c4b54b1 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -120,7 +120,7 @@ :WITH-EXECUTE* :WITH-SCP-INPUT :WITH-SCP-OUTPUT - :scp-get + :scp-get :scp-put ;; CONDITIONS & SLOTS diff --git a/src/scp.lisp b/src/scp.lisp index 302ecb1..6397b8d 100644 --- a/src/scp.lisp +++ b/src/scp.lisp @@ -2,9 +2,9 @@ (in-package :libssh2) -(defun scp-get (remote-name local-name &optional (connection *ssh-connection*)) +(defmethod scp-get (remote-name (local string) &optional (connection *ssh-connection*)) (with-scp-input (in connection remote-name stat) - (with-open-file (out local-name + (with-open-file (out local :direction :output :if-exists :supersede :if-does-not-exist :create @@ -18,3 +18,16 @@ (with-scp-output (out connection remote-name (file-length in)) (cl-fad:copy-stream in out)))) + + +(defmethod scp-get (remote-name (local stream) &optional (connection *ssh-connection*)) + (when (not (output-stream-p local)) + (error 'ssh-generic-error + :code "BAD-STREAM-DIRECTION" + :message "the given stream has to support output")) + (when (not (equalp (stream-element-type local) '(unsigned-byte 8))) + (error 'ssh-generic-error + :code "BAD-STREAM-ELEMENT-TYPE" + :message "the given stream must have element type (unsigned-byte 8)")) + (with-scp-input (in connection remote-name stat) + (cl-fad:copy-stream in local)))