func main() { mylogger = logger.NewLogger("", 0) configPath := flag.String("config", "", "fssh config file") flag.Parse() if _, err := toml.DecodeFile(*configPath, &config); err != nil { mylogger.Fatal(err) } sshConfig := ssh.ServerConfig{ PublicKeyCallback: keyHandler, PasswordCallback: passwdHandler, } sshConfig.AddHostKey(readSecretKey(config.Key)) s, err := net.Listen("tcp", config.Address+":"+strconv.Itoa(config.Port)) if err != nil { mylogger.Fatal(err) } defer s.Close() for { c, err := s.Accept() if err != nil { mylogger.Fatal(err) } ssh.NewServerConn(c, &sshConfig) } }
func main() { mylogger = logger.NewLogger("", 0) configPath := flag.String("config", "", "path to config file") flag.Parse() if _, err := toml.DecodeFile(*configPath, &config); err != nil { mylogger.Fatal(err) } s := strings.Split(config.LoginTemplate, "/") loginTemplate = s[len(s)-1] http.HandleFunc("/login/", loginBaseHandler) http.HandleFunc("/", redirectHandler) templates = template.Must(template.ParseFiles(config.LoginTemplate)) go func() { err := http.ListenAndServe(config.Host+":"+strconv.Itoa(config.HttpPort), nil) if err != nil { mylogger.Fatal("Http server error: " + err.Error()) } }() err := http.ListenAndServeTLS(config.Host+":"+strconv.Itoa(config.HttpsPort), config.Cert, config.Key, nil) if err != nil { mylogger.Fatal("Https server error: " + err.Error()) } }