File tree 4 files changed +26
-21
lines changed
4 files changed +26
-21
lines changed Original file line number Diff line number Diff line change 167
167
(but not equal to LIBSSH2_ERROR_EAGAIN). In those cases an exception will be
168
168
thrown using maybe-throw-error."
169
169
[session & body]
170
- `(let [res# (do ~@body)]
171
- (maybe-throw-error (:session ~session) res#)
170
+ `(let [session# ~session
171
+ res# (do ~@body)]
172
+ (maybe-throw-error (:session session#) res#)
172
173
res#))
173
174
174
175
(defn get-timeout
Original file line number Diff line number Diff line change 166
166
default-opts) plus :hostname, :port and :credentials which
167
167
will be passed as the first three arguments to open."
168
168
[session session-params & body]
169
- `(let [~session (open (:hostname ~session-params)
170
- (:port ~session-params)
171
- (:credentials ~session-params)
172
- (dissoc ~session-params :hostname :port :credentials ))]
169
+ `(let [session-params# ~session-params
170
+ ~session (open (:hostname session-params#)
171
+ (:port session-params#)
172
+ (:credentials session-params#)
173
+ (dissoc session-params# :hostname :port :credentials ))]
173
174
(try
174
175
(do ~@body)
175
176
(finally
Original file line number Diff line number Diff line change 98
98
(defmacro block
99
99
" Turn a non-blocking call that returns EAGAIN into a blocking one."
100
100
[session & body]
101
- `(let [start-time# (System/currentTimeMillis )]
101
+ `(let [session# ~session
102
+ start-time# (System/currentTimeMillis )]
102
103
(while (= libssh2/ERROR_EAGAIN (do ~@body))
103
- (handle-errors ~ session
104
- (wait ~ session start-time#)))))
104
+ (handle-errors session#
105
+ (wait session# start-time#)))))
105
106
106
107
(defmacro block-return
107
108
" Similar to block, but for functions that return a pointer"
108
109
[session & body]
109
- `(let [start-time# (System/currentTimeMillis )]
110
+ `(let [session# ~session
111
+ start-time# (System/currentTimeMillis )]
110
112
(loop [result# (do ~@body)]
111
113
(if (nil? result#)
112
- (let [errno# (libssh2-session/last-errno (:session ~ session))]
113
- (handle-errors ~ session errno#)
114
+ (let [errno# (libssh2-session/last-errno (:session session# ))]
115
+ (handle-errors session# errno#)
114
116
(when (= libssh2/ERROR_EAGAIN errno#)
115
- (wait ~ session start-time#))
117
+ (wait session# start-time#))
116
118
(recur (do ~@body)))
117
119
result#))))
Original file line number Diff line number Diff line change 25
25
describing a potential session (in which case this calls
26
26
clj-libssh2.session/with-session to create the session)."
27
27
[session session-or-host & body]
28
- `(if (instance? Session ~session-or-host)
29
- (let [~session ~session-or-host]
30
- (do ~@body))
31
- (let [defaults# {:hostname " 127.0.0.1"
32
- :port 22
33
- :credentials {:username (System/getProperty " user.name" )}}]
34
- (session/with-session ~session (merge defaults# ~session-or-host)
35
- (do ~@body)))))
28
+ `(let [session-or-host# ~session-or-host]
29
+ (if (instance? Session session-or-host#)
30
+ (let [~session session-or-host#]
31
+ (do ~@body))
32
+ (let [defaults# {:hostname " 127.0.0.1"
33
+ :port 22
34
+ :credentials {:username (System/getProperty " user.name" )}}]
35
+ (session/with-session ~session (merge defaults# session-or-host#)
36
+ (do ~@body))))))
36
37
37
38
(defn exec
38
39
" Execute a command and get the results.
You can’t perform that action at this time.
0 commit comments