aboutsummaryrefslogtreecommitdiff
path: root/cmd/dendrite-demo-yggdrasil/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/dendrite-demo-yggdrasil/main.go')
-rw-r--r--cmd/dendrite-demo-yggdrasil/main.go34
1 files changed, 16 insertions, 18 deletions
diff --git a/cmd/dendrite-demo-yggdrasil/main.go b/cmd/dendrite-demo-yggdrasil/main.go
index c6a7286e..87e2246f 100644
--- a/cmd/dendrite-demo-yggdrasil/main.go
+++ b/cmd/dendrite-demo-yggdrasil/main.go
@@ -16,18 +16,14 @@ package main
import (
"context"
- "crypto/ed25519"
"crypto/tls"
- "encoding/hex"
"flag"
"fmt"
"net"
"net/http"
- "strings"
"time"
"github.com/matrix-org/dendrite/appservice"
- "github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/convert"
"github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/embed"
"github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/signing"
"github.com/matrix-org/dendrite/cmd/dendrite-demo-yggdrasil/yggconn"
@@ -63,26 +59,13 @@ func (y *yggroundtripper) RoundTrip(req *http.Request) (*http.Response, error) {
func createFederationClient(
base *setup.BaseDendrite, n *yggconn.Node,
) *gomatrixserverlib.FederationClient {
- yggdialer := func(_, address string) (net.Conn, error) {
- tokens := strings.Split(address, ":")
- raw, err := hex.DecodeString(tokens[0])
- if err != nil {
- return nil, fmt.Errorf("hex.DecodeString: %w", err)
- }
- converted := convert.Ed25519PublicKeyToCurve25519(ed25519.PublicKey(raw))
- convhex := hex.EncodeToString(converted)
- return n.Dial("curve25519", convhex)
- }
- yggdialerctx := func(ctx context.Context, network, address string) (net.Conn, error) {
- return yggdialer(network, address)
- }
tr := &http.Transport{}
tr.RegisterProtocol(
"matrix", &yggroundtripper{
inner: &http.Transport{
ResponseHeaderTimeout: 15 * time.Second,
IdleConnTimeout: 60 * time.Second,
- DialContext: yggdialerctx,
+ DialContext: n.DialerContext,
},
},
)
@@ -91,6 +74,20 @@ func createFederationClient(
)
}
+func createClient(n *yggconn.Node) *gomatrixserverlib.Client {
+ tr := &http.Transport{}
+ tr.RegisterProtocol(
+ "matrix", &yggroundtripper{
+ inner: &http.Transport{
+ ResponseHeaderTimeout: 15 * time.Second,
+ IdleConnTimeout: 60 * time.Second,
+ DialContext: n.DialerContext,
+ },
+ },
+ )
+ return gomatrixserverlib.NewClientWithTransport(tr)
+}
+
// nolint:gocyclo
func main() {
flag.Parse()
@@ -162,6 +159,7 @@ func main() {
Config: base.Cfg,
AccountDB: accountDB,
DeviceDB: deviceDB,
+ Client: createClient(ygg),
FedClient: federation,
KeyRing: keyRing,
KafkaConsumer: base.KafkaConsumer,