gitea
Зеркало из https://github.com/go-gitea/gitea
1// Copyright 2019 The Gitea Authors. All rights reserved.
2// SPDX-License-Identifier: MIT
3
4package ssh
5
6import (
7"code.gitea.io/gitea/modules/graceful"
8"code.gitea.io/gitea/modules/log"
9"code.gitea.io/gitea/modules/setting"
10
11"github.com/gliderlabs/ssh"
12)
13
14func listen(server *ssh.Server) {
15gracefulServer := graceful.NewServer("tcp", server.Addr, "SSH")
16gracefulServer.PerWriteTimeout = setting.SSH.PerWriteTimeout
17gracefulServer.PerWritePerKbTimeout = setting.SSH.PerWritePerKbTimeout
18
19err := gracefulServer.ListenAndServe(server.Serve, setting.SSH.UseProxyProtocol)
20if err != nil {
21select {
22case <-graceful.GetManager().IsShutdown():
23log.Critical("Failed to start SSH server: %v", err)
24default:
25log.Fatal("Failed to start SSH server: %v", err)
26}
27}
28log.Info("SSH Listener: %s Closed", server.Addr)
29}
30
31// builtinUnused informs our cleanup routine that we will not be using a ssh port
32func builtinUnused() {
33graceful.GetManager().InformCleanup()
34}
35