| 254 | } |
| 255 | |
| 256 | func exitWithError(s ssh.Session, err error) { |
| 257 | if err != nil { |
| 258 | stderrlog.Errorf("%v", err) |
| 259 | msg := strings.TrimPrefix(err.Error(), "exec: ") |
| 260 | if _, err := s.Stderr().Write([]byte(msg)); err != nil { |
| 261 | stderrlog.Errorf("failed to write error to session: %v", err) |
| 262 | } |
| 263 | } |
| 264 | |
| 265 | // always exit session |
| 266 | err = s.Exit(ExitCode(err)) |
| 267 | if err != nil { |
| 268 | stderrlog.Errorf("session failed to exit: %v", err) |
| 269 | } |
| 270 | } |
| 271 | |
| 272 | func SftpHandler(sess ssh.Session) { |
| 273 | debugStream := io.Discard |