shared

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2023 License: Apache-2.0 Imports: 11 Imported by: 16

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(gomatrixserverlib.ServerName) bool
	Cache                    caching.FederationCache
	Writer                   sqlutil.Writer
	FederationQueuePDUs      tables.FederationQueuePDUs
	FederationQueueEDUs      tables.FederationQueueEDUs
	FederationQueueJSON      tables.FederationQueueJSON
	FederationJoinedHosts    tables.FederationJoinedHosts
	FederationBlacklist      tables.FederationBlacklist
	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 gomatrixserverlib.ServerName, roomID, peekID string, renewalInterval int64) error

func (*Database) AddOutboundPeek

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

func (*Database) AddServerToBlacklist

func (d *Database) AddServerToBlacklist(serverName gomatrixserverlib.ServerName) error

func (*Database) AssociateEDUWithDestinations added in v0.10.4

func (d *Database) AssociateEDUWithDestinations(
	ctx context.Context,
	destinations map[gomatrixserverlib.ServerName]struct{},
	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 added in v0.10.4

func (d *Database) AssociatePDUWithDestinations(
	ctx context.Context,
	destinations map[gomatrixserverlib.ServerName]struct{},
	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 gomatrixserverlib.ServerName,
	receipts []*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 gomatrixserverlib.ServerName,
	receipts []*Receipt,
) error

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

func (*Database) DeleteExpiredEDUs added in v0.9.2

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) ([]gomatrixserverlib.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 gomatrixserverlib.ServerName, roomID, 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) ([]gomatrixserverlib.ServerName, error)

func (*Database) GetNotaryKeys

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

func (*Database) GetOutboundPeek

func (d *Database) GetOutboundPeek(ctx context.Context, serverName gomatrixserverlib.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,
) ([]gomatrixserverlib.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 gomatrixserverlib.ServerName,
	limit int,
) (
	edus map[*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,
) ([]gomatrixserverlib.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 gomatrixserverlib.ServerName,
	limit int,
) (
	events map[*Receipt]*gomatrixserverlib.HeaderedEvent,
	err error,
)

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

func (*Database) IsServerBlacklisted

func (d *Database) IsServerBlacklisted(serverName gomatrixserverlib.ServerName) (bool, error)

func (*Database) PurgeRoom added in v0.11.0

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

func (*Database) RemoveAllServersFromBlacklist

func (d *Database) RemoveAllServersFromBlacklist() error

func (*Database) RemoveServerFromBlacklist

func (d *Database) RemoveServerFromBlacklist(serverName gomatrixserverlib.ServerName) error

func (*Database) RenewInboundPeek

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

func (*Database) RenewOutboundPeek

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

func (*Database) StoreJSON

func (d *Database) StoreJSON(
	ctx context.Context, js string,
) (*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 gomatrixserverlib.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.

type Receipt

type Receipt struct {
	// contains filtered or unexported fields
}

An Receipt contains the NIDs of a call to GetNextTransactionPDUs/EDUs. We don't actually export the NIDs but we need the caller to be able to pass them back so that we can clean up if the transaction sends successfully.

func NewReceipt added in v0.10.4

func NewReceipt(nid int64) Receipt

func (*Receipt) String

func (r *Receipt) String() string

Jump to

Keyboard shortcuts

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