mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-15 18:07:05 +08:00
parent
d5432c8e59
commit
338ade095a
1 changed files with 9 additions and 0 deletions
|
@ -5,6 +5,7 @@ import (
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
@ -15,6 +16,7 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
"unicode/utf8"
|
||||||
|
|
||||||
"github.com/1Panel-dev/1Panel/backend/app/dto"
|
"github.com/1Panel-dev/1Panel/backend/app/dto"
|
||||||
"github.com/1Panel-dev/1Panel/backend/buserr"
|
"github.com/1Panel-dev/1Panel/backend/buserr"
|
||||||
|
@ -637,6 +639,9 @@ func (u *ContainerService) ContainerLogs(wsConn *websocket.Conn, containerType,
|
||||||
cmd := exec.Command("bash", "-c", command)
|
cmd := exec.Command("bash", "-c", command)
|
||||||
if !follow {
|
if !follow {
|
||||||
stdout, _ := cmd.CombinedOutput()
|
stdout, _ := cmd.CombinedOutput()
|
||||||
|
if !utf8.Valid(stdout) {
|
||||||
|
return errors.New("invalid utf8")
|
||||||
|
}
|
||||||
if err := wsConn.WriteMessage(websocket.TextMessage, stdout); err != nil {
|
if err := wsConn.WriteMessage(websocket.TextMessage, stdout); err != nil {
|
||||||
global.LOG.Errorf("send message with log to ws failed, err: %v", err)
|
global.LOG.Errorf("send message with log to ws failed, err: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -678,6 +683,10 @@ func (u *ContainerService) ContainerLogs(wsConn *websocket.Conn, containerType,
|
||||||
global.LOG.Errorf("read bytes from log failed, err: %v", err)
|
global.LOG.Errorf("read bytes from log failed, err: %v", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
// check if the bytes is valid utf8
|
||||||
|
if !utf8.Valid(buffer[:n]) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
if err = wsConn.WriteMessage(websocket.TextMessage, buffer[:n]); err != nil {
|
if err = wsConn.WriteMessage(websocket.TextMessage, buffer[:n]); err != nil {
|
||||||
global.LOG.Errorf("send message with log to ws failed, err: %v", err)
|
global.LOG.Errorf("send message with log to ws failed, err: %v", err)
|
||||||
return err
|
return err
|
||||||
|
|
Loading…
Add table
Reference in a new issue