Skip to content

Commit 5ed7905

Browse files
committed
Merge pull request gliderlabs#10 from technosophos/feature/env
Added a handler for SSH env.
2 parents f1a52bd + 82cea76 commit 5ed7905

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

handlers.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,16 @@ func (h *sshHandler) Exit(err error) error {
163163
return err
164164
}
165165

166+
type EnvVar struct {
167+
Name, Value string
168+
}
169+
166170
func (h *sshHandler) Request(req *ssh.Request) {
167171
switch req.Type {
168172
case "exec":
169173
h.handleExec(req)
174+
case "env":
175+
h.handleEnv(req)
170176
case "pty-req":
171177
h.handlePty(req)
172178
case "window-change":
@@ -178,6 +184,14 @@ func (h *sshHandler) Request(req *ssh.Request) {
178184
}
179185
}
180186

187+
func (h *sshHandler) handleEnv(req *ssh.Request) {
188+
var pair EnvVar
189+
ssh.Unmarshal(req.Payload, &pair)
190+
envvar := fmt.Sprintf("%s=%s", pair.Name, pair.Value)
191+
h.Env = append(h.Env, envvar)
192+
req.Reply(true, nil)
193+
}
194+
181195
func (h *sshHandler) handleExec(req *ssh.Request) {
182196
h.Lock()
183197
defer h.Unlock()

0 commit comments

Comments
 (0)