shared

package
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

type Database struct {
	Cm                       sqlutil.ConnectionManager
	IsLocalServerName        func(spec.ServerName) bool
	Cache                    cacheutil.FederationCache
	FederationQueuePDUs      tables.FederationQueuePDUs
	FederationQueueEDUs      tables.FederationQueueEDUs
	FederationQueueJSON      tables.FederationQueueJSON
	FederationJoinedHosts    tables.FederationJoinedHosts
	FederationBlacklist      tables.FederationBlacklist
	FederationAssumedOffline tables.FederationAssumedOffline
	FederationRelayServers   tables.FederationRelayServers
	FederationOutboundPeeks  tables.FederationOutboundPeeks
	FederationInboundPeeks   tables.FederationInboundPeeks
	NotaryServerKeysJSON     tables.FederationNotaryServerKeysJSON
	NotaryServerKeysMetadata tables.FederationNotaryServerKeysMetadata
	ServerSigningKeys        tables.FederationServerSigningKeys
}

func (*Database) AddInboundPeek

func (d *Database) AddInboundPeek(
	ctx context.Context,
	serverName spec.ServerName,
	roomID string,
	peekID string,
	renewalInterval int64,
) error

func (*Database) AddOutboundPeek

func (d *Database) AddOutboundPeek(
	ctx context.Context,
	serverName spec.ServerName,
	roomID string,
	peekID string,
	renewalInterval int64,
) error

func (*Database) AddServerToBlacklist

func (d *Database) AddServerToBlacklist(
	ctx context.Context, serverName spec.ServerName,
) error

func (*Database) AssociateEDUWithDestinations

func (d *Database) AssociateEDUWithDestinations(
	ctx context.Context,
	destinations map[spec.ServerName]struct{},
	dbReceipt *receipt.Receipt,
	eduType string,
	expireEDUTypes map[string]time.Duration,
) error

AssociateEDUWithDestination creates an association that the destination queues will use to determine which JSON blobs to send to which servers.

func (*Database) AssociatePDUWithDestinations

func (d *Database) AssociatePDUWithDestinations(
	ctx context.Context,
	destinations map[spec.ServerName]struct{},
	dbReceipt *receipt.Receipt,
) error

AssociatePDUWithDestination creates an association that the destination queues will use to determine which JSON blobs to send to which servers.

func (*Database) CleanEDUs

func (d *Database) CleanEDUs(
	ctx context.Context,
	serverName spec.ServerName,
	receipts []*receipt.Receipt,
) error

CleanEDUs cleans up all specified EDUs. This is done when a transaction was sent successfully.

func (*Database) CleanPDUs

func (d *Database) CleanPDUs(
	ctx context.Context,
	serverName spec.ServerName,
	receipts []*receipt.Receipt,
) error

CleanTransactionPDUs cleans up all associated events for a given transaction. This is done when the transaction was sent successfully.

func (*Database) DeleteExpiredEDUs

func (d *Database) DeleteExpiredEDUs(ctx context.Context) error

DeleteExpiredEDUs deletes expired EDUs and evicts them from the cache.

func (*Database) FetchKeys

FetchKeys implements gomatrixserverlib.KeyDatabase

func (Database) FetcherName

func (d Database) FetcherName() string

FetcherName implements KeyFetcher

func (*Database) GetAllJoinedHosts

func (d *Database) GetAllJoinedHosts(
	ctx context.Context,
) ([]spec.ServerName, error)

GetAllJoinedHosts returns the currently joined hosts for all rooms known to the federation sender. Returns an error if something goes wrong.

func (*Database) GetInboundPeek

func (d *Database) GetInboundPeek(
	ctx context.Context,
	serverName spec.ServerName,
	roomID string,
	peekID string,
) (*types.InboundPeek, error)

func (*Database) GetInboundPeeks

func (d *Database) GetInboundPeeks(
	ctx context.Context,
	roomID string,
) ([]types.InboundPeek, error)

func (*Database) GetJoinedHosts

func (d *Database) GetJoinedHosts(
	ctx context.Context, roomID string,
) ([]types.JoinedHost, error)

GetJoinedHosts returns the currently joined hosts for room, as known to federationserver. Returns an error if something goes wrong.

func (*Database) GetJoinedHostsForRooms

func (d *Database) GetJoinedHostsForRooms(
	ctx context.Context,
	roomIDs []string,
	excludeSelf,
	excludeBlacklisted bool,
) ([]spec.ServerName, error)

func (*Database) GetNotaryKeys

func (d *Database) GetNotaryKeys(
	ctx context.Context,
	serverName spec.ServerName,
	optKeyIDs []gomatrixserverlib.KeyID,
) (sks []gomatrixserverlib.ServerKeys, err error)

func (*Database) GetOutboundPeek

func (d *Database) GetOutboundPeek(
	ctx context.Context,
	serverName spec.ServerName,
	roomID,
	peekID string,
) (*types.OutboundPeek, error)

func (*Database) GetOutboundPeeks

func (d *Database) GetOutboundPeeks(
	ctx context.Context,
	roomID string,
) ([]types.OutboundPeek, error)

func (*Database) GetPendingEDUServerNames

func (d *Database) GetPendingEDUServerNames(
	ctx context.Context,
) ([]spec.ServerName, error)

GetPendingEDUServerNames returns the server names that have EDUs waiting to be sent.

func (*Database) GetPendingEDUs

func (d *Database) GetPendingEDUs(
	ctx context.Context,
	serverName spec.ServerName,
	limit int,
) (
	edus map[*receipt.Receipt]*gomatrixserverlib.EDU,
	err error,
)

GetNextTransactionEDUs retrieves events from the database for the next pending transaction, up to the limit specified.

func (*Database) GetPendingPDUServerNames

func (d *Database) GetPendingPDUServerNames(
	ctx context.Context,
) ([]spec.ServerName, error)

GetPendingServerNames returns the server names that have PDUs waiting to be sent.

func (*Database) GetPendingPDUs

func (d *Database) GetPendingPDUs(
	ctx context.Context,
	serverName spec.ServerName,
	limit int,
) (
	events map[*receipt.Receipt]*types.HeaderedEvent,
	err error,
)

GetNextTransactionPDUs retrieves events from the database for the next pending transaction, up to the limit specified.

func (*Database) IsServerAssumedOffline

func (d *Database) IsServerAssumedOffline(
	ctx context.Context,
	serverName spec.ServerName,
) (bool, error)

func (*Database) IsServerBlacklisted

func (d *Database) IsServerBlacklisted(
	ctx context.Context, serverName spec.ServerName,
) (bool, error)

func (*Database) P2PAddRelayServersForServer

func (d *Database) P2PAddRelayServersForServer(
	ctx context.Context,
	serverName spec.ServerName,
	relayServers []spec.ServerName,
) error

func (*Database) P2PGetRelayServersForServer

func (d *Database) P2PGetRelayServersForServer(
	ctx context.Context,
	serverName spec.ServerName,
) ([]spec.ServerName, error)

func (*Database) P2PRemoveAllRelayServersForServer

func (d *Database) P2PRemoveAllRelayServersForServer(
	ctx context.Context,
	serverName spec.ServerName,
) error

func (*Database) P2PRemoveRelayServersForServer

func (d *Database) P2PRemoveRelayServersForServer(
	ctx context.Context,
	serverName spec.ServerName,
	relayServers []spec.ServerName,
) error

func (*Database) PurgeRoom

func (d *Database) PurgeRoom(ctx context.Context, roomID string) error

func (*Database) RemoveAllServersAssumedOffline

func (d *Database) RemoveAllServersAssumedOffline(
	ctx context.Context,
) error

func (*Database) RemoveAllServersFromBlacklist

func (d *Database) RemoveAllServersFromBlacklist(ctx context.Context) error

func (*Database) RemoveServerAssumedOffline

func (d *Database) RemoveServerAssumedOffline(
	ctx context.Context,
	serverName spec.ServerName,
) error

func (*Database) RemoveServerFromBlacklist

func (d *Database) RemoveServerFromBlacklist(
	ctx context.Context, serverName spec.ServerName,
) error

func (*Database) RenewInboundPeek

func (d *Database) RenewInboundPeek(
	ctx context.Context,
	serverName spec.ServerName,
	roomID string,
	peekID string,
	renewalInterval int64,
) error

func (*Database) RenewOutboundPeek

func (d *Database) RenewOutboundPeek(
	ctx context.Context,
	serverName spec.ServerName,
	roomID string,
	peekID string,
	renewalInterval int64,
) error

func (*Database) SetServerAssumedOffline

func (d *Database) SetServerAssumedOffline(
	ctx context.Context,
	serverName spec.ServerName,
) error

func (*Database) StoreJSON

func (d *Database) StoreJSON(
	ctx context.Context, js string,
) (*receipt.Receipt, error)

StoreJSON adds a JSON blob into the queue JSON table and returns a NID. The NID will then be used when inserting the per-destination metadata entries.

func (*Database) StoreKeys

StoreKeys implements gomatrixserverlib.KeyDatabase

func (*Database) UpdateNotaryKeys

func (d *Database) UpdateNotaryKeys(
	ctx context.Context,
	serverName spec.ServerName,
	serverKeys gomatrixserverlib.ServerKeys,
) error

func (*Database) UpdateRoom

func (d *Database) UpdateRoom(
	ctx context.Context,
	roomID string,
	addHosts []types.JoinedHost,
	removeHosts []string,
	purgeRoomFirst bool,
) (joinedHosts []types.JoinedHost, err error)

UpdateRoom updates the joined hosts for a room and returns what the joined hosts were before the update, or nil if this was a duplicate message. This is called when we receive a message from kafka, so we pass in oldEventID and newEventID to check that we haven't missed any messages or this isn't a duplicate message.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL