summaryrefslogtreecommitdiffstats
path: root/modules/private/internal.go
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2021-07-14 15:43:13 +0100
committerGitHub <noreply@github.com>2021-07-14 10:43:13 -0400
commit3dcb3e9073d825a4ada184f832892cf4bd5836a3 (patch)
treeaab77b7726f0e20f34b452df166113950ff5fc62 /modules/private/internal.go
parentee43d70a0c237ef9c02b99b9b49d1af348840319 (diff)
downloadgitea-3dcb3e9073d825a4ada184f832892cf4bd5836a3.tar.gz
gitea-3dcb3e9073d825a4ada184f832892cf4bd5836a3.zip
Second attempt at preventing zombies (#16326)
* Second attempt at preventing zombies * Ensure that the pipes are closed in ssh.go * Ensure that a cancellable context is passed up in cmd/* http requests * Make cmd.fail return properly so defers are obeyed * Ensure that something is sent to stdout in case of blocks here Signed-off-by: Andrew Thornton <art27@cantab.net> * placate lint Signed-off-by: Andrew Thornton <art27@cantab.net> * placate lint 2 Signed-off-by: Andrew Thornton <art27@cantab.net> * placate lint 3 Signed-off-by: Andrew Thornton <art27@cantab.net> * fixup Signed-off-by: Andrew Thornton <art27@cantab.net> * Apply suggestions from code review Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lauris BH <lauris@nix.lv>
Diffstat (limited to 'modules/private/internal.go')
-rw-r--r--modules/private/internal.go17
1 files changed, 12 insertions, 5 deletions
diff --git a/modules/private/internal.go b/modules/private/internal.go
index 360fae47b6..672ac74970 100644
--- a/modules/private/internal.go
+++ b/modules/private/internal.go
@@ -5,6 +5,7 @@
package private
import (
+ "context"
"crypto/tls"
"fmt"
"net"
@@ -15,9 +16,11 @@ import (
jsoniter "github.com/json-iterator/go"
)
-func newRequest(url, method string) *httplib.Request {
- return httplib.NewRequest(url, method).Header("Authorization",
- fmt.Sprintf("Bearer %s", setting.InternalToken))
+func newRequest(ctx context.Context, url, method string) *httplib.Request {
+ return httplib.NewRequest(url, method).
+ SetContext(ctx).
+ Header("Authorization",
+ fmt.Sprintf("Bearer %s", setting.InternalToken))
}
// Response internal request response
@@ -35,8 +38,8 @@ func decodeJSONError(resp *http.Response) *Response {
return &res
}
-func newInternalRequest(url, method string) *httplib.Request {
- req := newRequest(url, method).SetTLSClientConfig(&tls.Config{
+func newInternalRequest(ctx context.Context, url, method string) *httplib.Request {
+ req := newRequest(ctx, url, method).SetTLSClientConfig(&tls.Config{
InsecureSkipVerify: true,
ServerName: setting.Domain,
})
@@ -45,6 +48,10 @@ func newInternalRequest(url, method string) *httplib.Request {
Dial: func(_, _ string) (net.Conn, error) {
return net.Dial("unix", setting.HTTPAddr)
},
+ DialContext: func(ctx context.Context, _, _ string) (net.Conn, error) {
+ var d net.Dialer
+ return d.DialContext(ctx, "unix", setting.HTTPAddr)
+ },
})
}
return req