Fixes for multiple Pinecone peers
MODIFY
build/gobind-pinecone/monolith.go
build/gobind-pinecone/monolith.go
@@ -76,7 +76,7 @@ func (m *DendriteMonolith) BaseURL() string {
}
func (m *DendriteMonolith) PeerCount(peertype int) int {
- return m.PineconeRouter.PeerCount(pineconeRouter.ConnectionPeerType(peertype))
+ return m.PineconeRouter.PeerCount(peertype)
}
func (m *DendriteMonolith) SessionCount() int {
@@ -209,7 +209,7 @@ func (m *DendriteMonolith) staticPeerConnect() {
return
}
for k := range connected {
- connected[k] = false
+ delete(connected, k)
}
for _, uri := range strings.Split(uri, ",") {
connected[strings.TrimSpace(uri)] = false
@@ -289,7 +289,7 @@ func (m *DendriteMonolith) Start() {
cfg.SyncAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-syncapi.db", m.StorageDirectory, prefix))
cfg.RoomServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-roomserver.db", m.StorageDirectory, prefix))
cfg.KeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-keyserver.db", m.StorageDirectory, prefix))
- cfg.FederationAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-federationapi.db", m.StorageDirectory, prefix))
+ cfg.FederationAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-federationsender.db", m.StorageDirectory, prefix))
cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/%s-appservice.db", m.StorageDirectory, prefix))
cfg.MediaAPI.BasePath = config.Path(fmt.Sprintf("%s/media", m.CacheDirectory))
cfg.MediaAPI.AbsBasePath = config.Path(fmt.Sprintf("%s/media", m.CacheDirectory))

MODIFY
build/gobind-yggdrasil/monolith.go
build/gobind-yggdrasil/monolith.go
@@ -94,7 +94,7 @@ func (m *DendriteMonolith) Start() {
cfg.SyncAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-syncapi.db", m.StorageDirectory))
cfg.RoomServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-roomserver.db", m.StorageDirectory))
cfg.KeyServer.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-keyserver.db", m.StorageDirectory))
- cfg.FederationAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-federationapi.db", m.StorageDirectory))
+ cfg.FederationAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-federationsender.db", m.StorageDirectory))
cfg.AppServiceAPI.Database.ConnectionString = config.DataSource(fmt.Sprintf("file:%s/dendrite-p2p-appservice.db", m.StorageDirectory))
cfg.MediaAPI.BasePath = config.Path(fmt.Sprintf("%s/tmp", m.StorageDirectory))
cfg.MediaAPI.AbsBasePath = config.Path(fmt.Sprintf("%s/tmp", m.StorageDirectory))

MODIFY
cmd/dendrite-demo-pinecone/conn/client.go
cmd/dendrite-demo-pinecone/conn/client.go
@@ -37,7 +37,7 @@ func ConnectToPeer(pRouter *pineconeRouter.Router, peer string) error {
_, err := pRouter.Connect(
parent,
pineconeRouter.ConnectionZone("static"),
- pineconeRouter.PeerTypeRemote,
+ pineconeRouter.ConnectionPeerType(pineconeRouter.PeerTypeRemote),
pineconeRouter.ConnectionURI(peer),
)
return err

MODIFY
cmd/dendrite-demo-pinecone/main.go
cmd/dendrite-demo-pinecone/main.go
@@ -110,7 +110,10 @@ func main() {
continue
}
- port, err := pRouter.Connect(conn, pineconeRouter.PeerTypeRemote)
+ port, err := pRouter.Connect(
+ conn,
+ pineconeRouter.ConnectionPeerType(pineconeRouter.PeerTypeRemote),
+ )
if err != nil {
logrus.WithError(err).Error("pSwitch.Connect failed")
continue
@@ -242,7 +245,7 @@ func main() {
if _, err = pRouter.Connect(
conn,
pineconeRouter.ConnectionZone("websocket"),
- pineconeRouter.PeerTypeRemote,
+ pineconeRouter.ConnectionPeerType(pineconeRouter.PeerTypeRemote),
); err != nil {
logrus.WithError(err).Error("Failed to connect WebSocket peer to Pinecone switch")
}

Fixes for multiple Pinecone peers