mirror of
https://github.com/hoernschen/dendrite.git
synced 2024-12-27 23:48:27 +00:00
e5208c2ec9
Squashed commit of the following: commit 86c2388e13ffdbabdd50cea205652dccc40e1860 Merge:b0a3ee6c
f5e7e751
Author: Neil Alexander <neilalexander@users.noreply.github.com> Date: Thu Jul 16 13:47:10 2020 +0100 Merge branch 'master' into neilalexander/yggbarequic commitb0a3ee6c5c
Author: Neil Alexander <neilalexander@users.noreply.github.com> Date: Thu Jul 16 13:42:22 2020 +0100 Add support for broadcasting wake-up EDUs to known hosts commit8a5c2020b3
Author: Neil Alexander <neilalexander@users.noreply.github.com> Date: Thu Jul 16 13:42:10 2020 +0100 Bare QUIC demo working commitd3939b3d65
Author: Neil Alexander <neilalexander@users.noreply.github.com> Date: Wed Jul 15 11:42:43 2020 +0100 Support bare Yggdrasil sessions with encrypted QUIC
55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package yggconn
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/matrix-org/dendrite/internal/setup"
|
|
"github.com/matrix-org/gomatrixserverlib"
|
|
)
|
|
|
|
type yggroundtripper struct {
|
|
inner *http.Transport
|
|
}
|
|
|
|
func (y *yggroundtripper) RoundTrip(req *http.Request) (*http.Response, error) {
|
|
req.URL.Scheme = "http"
|
|
return y.inner.RoundTrip(req)
|
|
}
|
|
|
|
func (n *Node) CreateClient(
|
|
base *setup.BaseDendrite,
|
|
) *gomatrixserverlib.Client {
|
|
tr := &http.Transport{}
|
|
tr.RegisterProtocol(
|
|
"matrix", &yggroundtripper{
|
|
inner: &http.Transport{
|
|
TLSHandshakeTimeout: 20 * time.Second,
|
|
ResponseHeaderTimeout: 10 * time.Second,
|
|
IdleConnTimeout: 60 * time.Second,
|
|
DialContext: n.DialerContext,
|
|
},
|
|
},
|
|
)
|
|
return gomatrixserverlib.NewClientWithTransport(tr)
|
|
}
|
|
|
|
func (n *Node) CreateFederationClient(
|
|
base *setup.BaseDendrite,
|
|
) *gomatrixserverlib.FederationClient {
|
|
tr := &http.Transport{}
|
|
tr.RegisterProtocol(
|
|
"matrix", &yggroundtripper{
|
|
inner: &http.Transport{
|
|
TLSHandshakeTimeout: 20 * time.Second,
|
|
ResponseHeaderTimeout: 10 * time.Second,
|
|
IdleConnTimeout: 60 * time.Second,
|
|
DialContext: n.DialerContext,
|
|
TLSClientConfig: n.tlsConfig,
|
|
},
|
|
},
|
|
)
|
|
return gomatrixserverlib.NewFederationClientWithTransport(
|
|
base.Cfg.Matrix.ServerName, base.Cfg.Matrix.KeyID, base.Cfg.Matrix.PrivateKey, tr,
|
|
)
|
|
}
|