mirror of
https://github.com/pterodactyl/wings.git
synced 2026-04-11 22:03:09 -05:00
Compare commits
1 Commits
develop
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0980c35f59 |
4
.github/workflows/codeql.yaml
vendored
4
.github/workflows/codeql.yaml
vendored
@@ -29,10 +29,10 @@ jobs:
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@0499de31b99561a6d14a36a5f662c2a54f91beee # v3.29.5
|
||||
uses: github/codeql-action/init@89a39a4e59826350b863aa6b6252a07ad50cf83e # v3.29.5
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@0499de31b99561a6d14a36a5f662c2a54f91beee # v3.29.5
|
||||
uses: github/codeql-action/analyze@89a39a4e59826350b863aa6b6252a07ad50cf83e # v3.29.5
|
||||
|
||||
@@ -25,7 +25,6 @@ var client *http.Client
|
||||
func init() {
|
||||
dialer := &net.Dialer{
|
||||
LocalAddr: nil,
|
||||
Timeout: time.Second * 30,
|
||||
}
|
||||
|
||||
trnspt := http.DefaultTransport.(*http.Transport).Clone()
|
||||
@@ -56,8 +55,10 @@ func init() {
|
||||
}
|
||||
|
||||
client = &http.Client{
|
||||
Timeout: time.Hour * 2,
|
||||
Timeout: time.Hour * 12,
|
||||
|
||||
Transport: trnspt,
|
||||
|
||||
// Disallow any redirect on an HTTP call. This is a security requirement: do not modify
|
||||
// this logic without first ensuring that the new target location IS NOT within the current
|
||||
// instance's local network.
|
||||
@@ -191,10 +192,7 @@ func (dl *Download) Execute() error {
|
||||
req.Header.Set("User-Agent", "Pterodactyl Panel (https://pterodactyl.io)")
|
||||
res, err := client.Do(req)
|
||||
if err != nil {
|
||||
if IsDownloadError(err) {
|
||||
return err
|
||||
}
|
||||
return errors.Wrap(err, ErrDownloadFailed.Error())
|
||||
return ErrDownloadFailed
|
||||
}
|
||||
defer res.Body.Close()
|
||||
if res.StatusCode != http.StatusOK {
|
||||
@@ -337,7 +335,3 @@ func mustParseCIDR(ip string) *net.IPNet {
|
||||
}
|
||||
return block
|
||||
}
|
||||
|
||||
func IsDownloadError(err error) bool {
|
||||
return errors.Is(err, ErrDownloadFailed) || errors.Is(err, ErrInvalidIPAddress) || errors.Is(err, ErrInternalResolution)
|
||||
}
|
||||
|
||||
@@ -328,15 +328,13 @@ func postServerPullRemoteFile(c *gin.Context) {
|
||||
download := func() error {
|
||||
s.Log().WithField("download_id", dl.Identifier).WithField("url", u.String()).Info("starting pull of remote file to disk")
|
||||
if err := dl.Execute(); err != nil {
|
||||
if !downloader.IsDownloadError(err) {
|
||||
s.Log().WithField("download_id", dl.Identifier).WithField("error", err).Error("failed to pull remote file")
|
||||
}
|
||||
s.Log().WithField("download_id", dl.Identifier).WithField("error", err).Error("failed to pull remote file")
|
||||
return err
|
||||
} else {
|
||||
s.Log().WithField("download_id", dl.Identifier).Info("completed pull of remote file")
|
||||
}
|
||||
s.Log().WithField("download_id", dl.Identifier).Info("completed pull of remote file")
|
||||
return nil
|
||||
}
|
||||
|
||||
if !data.Foreground {
|
||||
go func() {
|
||||
_ = download()
|
||||
@@ -348,21 +346,6 @@ func postServerPullRemoteFile(c *gin.Context) {
|
||||
}
|
||||
|
||||
if err := download(); err != nil {
|
||||
if downloader.IsDownloadError(err) {
|
||||
var message = "The URL or IP address provided could not be resolved to a valid destination."
|
||||
if errors.Is(err, downloader.ErrDownloadFailed) {
|
||||
s.Log().WithField("identifier", dl.Identifier).WithField("error", err).Warn("failed to download remote file")
|
||||
|
||||
message = "An error was encountered while trying to download this file. Please try again later."
|
||||
}
|
||||
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"identifier": dl.Identifier,
|
||||
"message": message,
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
middleware.CaptureAndAbort(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user