Documentation
¶
Index ¶
Constants ¶
const ( ConnectTimeout = 3 * time.Second RequestTimeout = 30 * time.Second )
Variables ¶
var AddressForbidden error = errors.New("address forbidden, you may need to set AllowedUntrustedInternalConnections to allow an integration access to your internal network")
Functions ¶
func IsOwnIP ¶
IsOwnIP handles the special case that a request might be made to the public IP of the host which on Linux is routed directly via the loopback IP to any listening sockets, effectively bypassing host-based firewalls such as firewalld
func IsReservedIP ¶
IsReservedIP checks whether the target IP belongs to reserved IP address ranges to avoid SSRF attacks to the internal network of the Mattermost server
func NewTransport ¶
Types ¶
type DialContextFunction ¶
type HTTPService ¶
type HTTPService interface {
// MakeClient returns an http client constructed with a RoundTripper as returned by MakeTransport.
MakeClient(trustURLs bool) *http.Client
// MakeTransport returns a RoundTripper that is suitable for making requests to external resources. The default
// implementation provides:
// - A shorter timeout for dial and TLS handshake (defined as constant "ConnectTimeout")
// - A timeout for end-to-end requests
// - A Mattermost-specific user agent header
// - Additional security for untrusted and insecure connections
MakeTransport(trustURLs bool) http.RoundTripper
}
HTTPService wraps the functionality for making http requests to provide some improvements to the default client behaviour.
func MakeHTTPService ¶
func MakeHTTPService(configService configservice.ConfigService) HTTPService
type HTTPServiceImpl ¶
type HTTPServiceImpl struct {
RequestTimeout time.Duration
// contains filtered or unexported fields
}
func (*HTTPServiceImpl) MakeClient ¶
func (h *HTTPServiceImpl) MakeClient(trustURLs bool) *http.Client
func (*HTTPServiceImpl) MakeTransport ¶
func (h *HTTPServiceImpl) MakeTransport(trustURLs bool) http.RoundTripper
type MattermostTransport ¶
type MattermostTransport struct {
// Transport is the underlying http.RoundTripper that is actually used to make the request
Transport http.RoundTripper
}
MattermostTransport is an implementation of http.RoundTripper that ensures each request contains a custom user agent string to indicate that the request is coming from a Mattermost instance.