fix: telnet server update

This commit is contained in:
2024-09-14 14:44:02 +08:00
parent a0ad5fbd53
commit 9e71a35cd7
2 changed files with 72 additions and 220 deletions

View File

@@ -19,7 +19,7 @@ import (
"be.ems/sshsvc/config"
"be.ems/sshsvc/logmml"
"be.ems/sshsvc/snmp"
telnetOMC "be.ems/sshsvc/telnet"
omctelnet "be.ems/sshsvc/telnet"
//"github.com/gliderlabs/ssh"
"golang.org/x/crypto/ssh"
@@ -126,18 +126,18 @@ func main() {
// os.Exit(6)
// }
telnetSvc := telnetOMC.TelnetHandler{
// ListenAddr: conf.TelnetServer.ListenAddr,
// ListenPort: conf.TelnetServer.ListenPort,
// UserName: conf.TelnetServer.UserName,
// Password: conf.TelnetServer.Password,
// AuthType: conf.TelnetServer.AuthType,
// MaxConnNum: conf.TelnetServer.MaxConnNum,
// TagNE: conf.TelnetServer.TagNE,
telnetSvc := omctelnet.TelnetHandler{
ListenAddr: conf.TelnetServer.ListenAddr,
ListenPort: conf.TelnetServer.ListenPort,
UserName: conf.TelnetServer.UserName,
Password: conf.TelnetServer.Password,
AuthType: conf.TelnetServer.AuthType,
MaxConnNum: conf.TelnetServer.MaxConnNum,
TagNE: conf.TelnetServer.TagNE,
ListenHost: conf.TelnetServer.ListenAddr + ":" + strconv.Itoa(int(conf.TelnetServer.ListenPort)),
}
// go telnetSvc.StartTelnetServer()
go StartTelnetServer(telnetSvc.ListenHost)
go telnetSvc.StartTelnetServer()
// go StartTelnetServer(telnetSvc.ListenHost)
snmpSvc := snmp.SNMPService{
ListenAddr: conf.SNMPServer.ListenAddr,
@@ -335,9 +335,6 @@ func HandleCommands(user, tag string, reader *bufio.Reader, writer *bufio.Writer
writer.Flush()
return
case "":
// case "\n":
// case "\r\n":
case "\xff\xfe\x01":
default:
writer.WriteString("\r\nUnknown command\r\n")
writer.Flush()
@@ -347,38 +344,6 @@ func HandleCommands(user, tag string, reader *bufio.Reader, writer *bufio.Writer
}
}
// 处理命令输入
func HandleCommandsNew(user, tag string, reader *bufio.Reader, writer *bufio.Writer) {
header := fmt.Sprintf("[%s@%s]> ", user, tag)
clearLine := "\033[2K\r" // ANSI 转义序列,用于清除当前行
for {
writer.WriteString(clearLine + header)
writer.Flush()
command, err := reader.ReadString('\n')
if err != nil {
return
}
command = strings.TrimSpace(command)
// Handle other commands
switch command {
case "hello":
writer.WriteString("\r\nHello, world!\r\n")
case "time":
writer.WriteString(fmt.Sprintf("\r\nCurrent time: %s\r\n", time.Now().Format(time.RFC1123)))
case "exit", "quit":
writer.WriteString("\r\nGoodbye!\r\n")
writer.Flush()
return
default:
writer.WriteString("\r\nUnknown command\r\n")
}
writer.Flush()
}
}
func handleSSHConnection(conn net.Conn, serverConfig *ssh.ServerConfig) {
// SSH握手
sshConn, chans, reqs, err := ssh.NewServerConn(conn, serverConfig)