shared

package
v0.2.12 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2024 License: Apache-2.0 Imports: 14 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 {
	DB                       *sql.DB
	IsLocalServerName        func(spec.ServerName) bool
	Cache                    caching.FederationCache
	Writer                   sqlutil.Writer
	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(
	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)

GetPendingServerNames 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(
	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() error

func (*Database) RemoveServerAssumedOffline

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

func (*Database) RemoveServerFromBlacklist

func (d *Database) RemoveServerFromBlacklist(
	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