mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-12-18 13:29:03 +08:00
fix: Fix the issue where SSH port changes are not synchronized to the… (#10398)
… local terminal Refs #10358
This commit is contained in:
parent
1999f102bf
commit
41c49ca95f
1 changed files with 30 additions and 0 deletions
|
|
@ -3,6 +3,7 @@ package service
|
|||
import (
|
||||
"bytes"
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/user"
|
||||
|
|
@ -208,6 +209,10 @@ func (u *SSHService) Update(req dto.SSHUpdate) error {
|
|||
if err := NewIFirewallService().UpdatePortRule(ruleItem); err != nil {
|
||||
global.LOG.Errorf("reset firewall rules %s -> %s failed, err: %v", req.OldValue, req.NewValue, err)
|
||||
}
|
||||
newPort, _ := strconv.Atoi(req.NewValue)
|
||||
if err := updateLocalConn(uint(newPort)); err != nil {
|
||||
global.LOG.Errorf("update local conn for terminal failed, err: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
_, _ = cmd.RunDefaultWithStdoutBashCf("%s systemctl restart %s", sudo, serviceName)
|
||||
|
|
@ -738,3 +743,28 @@ func loadEncryptioMode(content string) string {
|
|||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func updateLocalConn(newPort uint) error {
|
||||
conn, _ := settingRepo.GetValueByKey("LocalSSHConn")
|
||||
if len(conn) == 0 {
|
||||
return nil
|
||||
}
|
||||
connItem, err := encrypt.StringDecrypt(conn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var data dto.SSHConnData
|
||||
if err := json.Unmarshal([]byte(connItem), &data); err != nil {
|
||||
return err
|
||||
}
|
||||
data.Port = newPort
|
||||
connNew, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
connNewItem, err := encrypt.StringEncrypt(string(connNew))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return settingRepo.Update("LocalSSHConn", connNewItem)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue