2017-05-04 08:42:02 +03:00
// Copyright 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
2017-04-19 06:45:01 +03:00
package private
import (
2021-07-14 17:43:13 +03:00
"context"
2017-04-19 06:45:01 +03:00
"crypto/tls"
"fmt"
2017-08-03 18:32:13 +03:00
"net"
2017-04-19 06:45:01 +03:00
"net/http"
"code.gitea.io/gitea/modules/httplib"
"code.gitea.io/gitea/modules/setting"
2021-03-02 00:08:10 +03:00
jsoniter "github.com/json-iterator/go"
2017-04-19 06:45:01 +03:00
)
2021-07-14 17:43:13 +03:00
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 ) )
2017-04-19 06:45:01 +03:00
}
// Response internal request response
type Response struct {
Err string ` json:"err" `
}
func decodeJSONError ( resp * http . Response ) * Response {
var res Response
2021-03-02 00:08:10 +03:00
json := jsoniter . ConfigCompatibleWithStandardLibrary
2017-04-19 06:45:01 +03:00
err := json . NewDecoder ( resp . Body ) . Decode ( & res )
if err != nil {
res . Err = err . Error ( )
}
return & res
}
2021-07-14 17:43:13 +03:00
func newInternalRequest ( ctx context . Context , url , method string ) * httplib . Request {
req := newRequest ( ctx , url , method ) . SetTLSClientConfig ( & tls . Config {
2017-08-03 18:32:13 +03:00
InsecureSkipVerify : true ,
2019-01-24 03:47:54 +03:00
ServerName : setting . Domain ,
2017-08-03 18:32:13 +03:00
} )
if setting . Protocol == setting . UnixSocket {
req . SetTransport ( & http . Transport {
Dial : func ( _ , _ string ) ( net . Conn , error ) {
return net . Dial ( "unix" , setting . HTTPAddr )
} ,
2021-07-14 17:43:13 +03:00
DialContext : func ( ctx context . Context , _ , _ string ) ( net . Conn , error ) {
var d net . Dialer
return d . DialContext ( ctx , "unix" , setting . HTTPAddr )
} ,
2017-08-03 18:32:13 +03:00
} )
}
return req
}