Support cooker prompts in ssh-service.
This commit is contained in:
parent
fe0f7c7fe0
commit
ad7b120bf6
|
@ -161,10 +161,12 @@
|
|||
;; PTY-based/shell-like services
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define (pty-ssh-server-session handle shell-callback)
|
||||
(raw-ssh-server-session/session handle (pty-ssh-server-session-callback shell-callback)))
|
||||
(define (pty-ssh-server-session handle shell-callback #:prompt [prompt ""])
|
||||
(raw-ssh-server-session/session handle
|
||||
(pty-ssh-server-session-callback shell-callback
|
||||
#:prompt prompt)))
|
||||
|
||||
(define (pty-ssh-server-session-callback shell-callback)
|
||||
(define (pty-ssh-server-session-callback shell-callback #:prompt [prompt ""])
|
||||
(lambda (username oob-ch in out)
|
||||
(define (base-eh loop)
|
||||
(match-lambda
|
||||
|
@ -188,7 +190,7 @@
|
|||
(match-lambda
|
||||
(`(request (#"pty-req" ,_) ,k)
|
||||
(k 'ok)
|
||||
(define-values (cooked-in cooked-out) (cook-io in out ""))
|
||||
(define-values (cooked-in cooked-out) (cook-io in out prompt))
|
||||
(configure-shell cooked-in cooked-out))
|
||||
(`(request (#"shell" ,_) ,k)
|
||||
(k 'ok)
|
||||
|
@ -197,10 +199,10 @@
|
|||
|
||||
(configure-shell in out)))
|
||||
|
||||
(define (tcp-pty-ssh-server server-socket shell-callback)
|
||||
(define (tcp-pty-ssh-server server-socket shell-callback #:prompt [prompt ""])
|
||||
(let loop ()
|
||||
(define-values (i o) (tcp-accept server-socket))
|
||||
(standard-thread
|
||||
(lambda ()
|
||||
(pty-ssh-server-session (ssh-session 'server i o) shell-callback)))
|
||||
(pty-ssh-server-session (ssh-session 'server i o) shell-callback #:prompt prompt)))
|
||||
(loop)))
|
||||
|
|
Loading…
Reference in New Issue