1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 13:29:41 +02:00

fix(console): remove deprecated httputil and update console [EE-6468] (#10848)
Some checks are pending
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run

This commit is contained in:
Matt Hook 2024-05-15 10:28:21 +12:00 committed by GitHub
parent 836df78181
commit 7edce528d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 148 additions and 54 deletions

View file

@ -1,13 +1,13 @@
package websocket
import (
"github.com/portainer/portainer/api/http/security"
"github.com/rs/zerolog/log"
"net"
"net/http"
"net/http/httputil"
"time"
"github.com/portainer/portainer/api/http/security"
"github.com/rs/zerolog/log"
portainer "github.com/portainer/portainer/api"
httperror "github.com/portainer/portainer/pkg/libhttp/error"
"github.com/portainer/portainer/pkg/libhttp/request"
@ -107,7 +107,7 @@ func hijackAttachStartOperation(
attachID string,
token string,
) error {
dial, err := initDial(endpoint)
conn, err := initDial(endpoint)
if err != nil {
return err
}
@ -117,24 +117,20 @@ func hijackAttachStartOperation(
// network setups may cause ECONNTIMEOUT, leaving the client in an unknown
// state. Setting TCP KeepAlive on the socket connection will prohibit
// ECONNTIMEOUT unless the socket connection truly is broken
if tcpConn, ok := dial.(*net.TCPConn); ok {
if tcpConn, ok := conn.(*net.TCPConn); ok {
tcpConn.SetKeepAlive(true)
tcpConn.SetKeepAlivePeriod(30 * time.Second)
}
httpConn := httputil.NewClientConn(dial, nil)
defer httpConn.Close()
attachStartRequest, err := createAttachStartRequest(attachID)
if err != nil {
return err
}
return hijackRequest(websocketConn, httpConn, attachStartRequest, token)
return hijackRequest(websocketConn, conn, attachStartRequest, token)
}
func createAttachStartRequest(attachID string) (*http.Request, error) {
request, err := http.NewRequest("POST", "/containers/"+attachID+"/attach?stdin=1&stdout=1&stderr=1&stream=1", nil)
if err != nil {
return nil, err