Use different user-agent for twitter links (#16210)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
eced0cdb72
Коммит
4063f407a1
@@ -410,6 +410,12 @@ func (a *App) getLinkMetadata(requestURL string, timestamp int64, isNewPost bool
|
|||||||
|
|
||||||
client := a.HTTPService().MakeClient(false)
|
client := a.HTTPService().MakeClient(false)
|
||||||
client.Timeout = time.Duration(*a.Config().ExperimentalSettings.LinkMetadataTimeoutMilliseconds) * time.Millisecond
|
client.Timeout = time.Duration(*a.Config().ExperimentalSettings.LinkMetadataTimeoutMilliseconds) * time.Millisecond
|
||||||
|
mmTransport := a.HTTPService().MakeTransport(false)
|
||||||
|
client.Transport = mmTransport.Transport
|
||||||
|
|
||||||
|
if strings.HasPrefix(requestURL, "https://twitter.com/") || strings.HasPrefix(requestURL, "https://mobile.twitter.com/") {
|
||||||
|
request.Header.Add("User-Agent", "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)")
|
||||||
|
}
|
||||||
|
|
||||||
var res *http.Response
|
var res *http.Response
|
||||||
res, err = client.Do(request)
|
res, err = client.Do(request)
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ func dialContextFilter(dial DialContextFunction, allowHost func(host string) boo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTransport(enableInsecureConnections bool, allowHost func(host string) bool, allowIP func(ip net.IP) bool) http.RoundTripper {
|
func NewTransport(enableInsecureConnections bool, allowHost func(host string) bool, allowIP func(ip net.IP) bool) *MattermostTransport {
|
||||||
dialContext := (&net.Dialer{
|
dialContext := (&net.Dialer{
|
||||||
Timeout: ConnectTimeout,
|
Timeout: ConnectTimeout,
|
||||||
KeepAlive: 30 * time.Second,
|
KeepAlive: 30 * time.Second,
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ type HTTPService interface {
|
|||||||
// - A timeout for end-to-end requests
|
// - A timeout for end-to-end requests
|
||||||
// - A Mattermost-specific user agent header
|
// - A Mattermost-specific user agent header
|
||||||
// - Additional security for untrusted and insecure connections
|
// - Additional security for untrusted and insecure connections
|
||||||
MakeTransport(trustURLs bool) http.RoundTripper
|
MakeTransport(trustURLs bool) *MattermostTransport
|
||||||
}
|
}
|
||||||
|
|
||||||
type HTTPServiceImpl struct {
|
type HTTPServiceImpl struct {
|
||||||
@@ -52,7 +52,7 @@ func (h *HTTPServiceImpl) MakeClient(trustURLs bool) *http.Client {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *HTTPServiceImpl) MakeTransport(trustURLs bool) http.RoundTripper {
|
func (h *HTTPServiceImpl) MakeTransport(trustURLs bool) *MattermostTransport {
|
||||||
insecure := h.configService.Config().ServiceSettings.EnableInsecureOutgoingConnections != nil && *h.configService.Config().ServiceSettings.EnableInsecureOutgoingConnections
|
insecure := h.configService.Config().ServiceSettings.EnableInsecureOutgoingConnections != nil && *h.configService.Config().ServiceSettings.EnableInsecureOutgoingConnections
|
||||||
|
|
||||||
if trustURLs {
|
if trustURLs {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user