code.gitea.io/gitea@v1.19.3/modules/ssh/ssh_graceful.go (about) 1 // Copyright 2019 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package ssh 5 6 import ( 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 14 func listen(server *ssh.Server) { 15 gracefulServer := graceful.NewServer("tcp", server.Addr, "SSH") 16 gracefulServer.PerWriteTimeout = setting.SSH.PerWriteTimeout 17 gracefulServer.PerWritePerKbTimeout = setting.SSH.PerWritePerKbTimeout 18 19 err := gracefulServer.ListenAndServe(server.Serve, setting.SSH.UseProxyProtocol) 20 if err != nil { 21 select { 22 case <-graceful.GetManager().IsShutdown(): 23 log.Critical("Failed to start SSH server: %v", err) 24 default: 25 log.Fatal("Failed to start SSH server: %v", err) 26 } 27 } 28 log.Info("SSH Listener: %s Closed", server.Addr) 29 } 30 31 // builtinUnused informs our cleanup routine that we will not be using a ssh port 32 func builtinUnused() { 33 graceful.GetManager().InformCleanup() 34 }