mirror of
https://codeberg.org/davrot/forgejo.git
synced 2025-05-20 14:00:04 +02:00
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>
This commit is contained in:
parent
ee43d70a0c
commit
3dcb3e9073
21 changed files with 229 additions and 143 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue