module

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package module provides XMPP functionality.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type IQProcessor

type IQProcessor interface {
	Module

	// MatchesNamespace tells whether iq child namespace corresponds to this module.
	// The serverTarget parameter will be true in case iq target is a server entity.
	MatchesNamespace(namespace string, serverTarget bool) bool

	// ProcessIQ will be invoked whenever iq stanza should be processed by this module.
	ProcessIQ(ctx context.Context, iq *stravaganza.IQ) error
}

IQProcessor represents an iq processor module type.

type Module

type Module interface {
	// Name returns specific module name.
	Name() string

	// StreamFeature returns module stream feature element.
	StreamFeature(ctx context.Context, domain string) (stravaganza.Element, error)

	// ServerFeatures returns module server features.
	ServerFeatures(ctx context.Context) ([]string, error)

	// AccountFeatures returns module account features.
	AccountFeatures(ctx context.Context) ([]string, error)

	// Start starts module.
	Start(ctx context.Context) error

	// Stop stops module.
	Stop(ctx context.Context) error
}

Module represents generic module interface.

type Modules

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

Modules is the global module hub.

func NewModules

func NewModules(
	mods []Module,
	hosts *host.Hosts,
	router router.Router,
	hk *hook.Hooks,
	logger kitlog.Logger,
) *Modules

NewModules returns a new initialized Modules instance.

func (*Modules) AllModules

func (m *Modules) AllModules() []Module

AllModules returns all configured modules.

func (*Modules) IsEnabled

func (m *Modules) IsEnabled(moduleName string) bool

IsEnabled tells whether a specific module it's been registered.

func (*Modules) IsModuleIQ

func (m *Modules) IsModuleIQ(iq *stravaganza.IQ) bool

IsModuleIQ returns true in case iq stanza should be handled by modules.

func (*Modules) ProcessIQ

func (m *Modules) ProcessIQ(ctx context.Context, iq *stravaganza.IQ) error

ProcessIQ routes the iq to the corresponding iq handler module.

func (*Modules) Start

func (m *Modules) Start(ctx context.Context) error

Start starts modules.

func (*Modules) Stop

func (m *Modules) Stop(ctx context.Context) error

Stop stops modules.

func (*Modules) StreamFeatures

func (m *Modules) StreamFeatures(ctx context.Context, domain string) ([]stravaganza.Element, error)

StreamFeatures returns stream features of all registered modules.

Directories

Path Synopsis
Package accountactivity tracks user login/logout events via hooks.
Package accountactivity tracks user login/logout events via hooks.
Package announce implements the Server Announce / MOTD module.
Package announce implements the Server Announce / MOTD module.
Package antispam provides XMPP functionality.
Package antispam provides XMPP functionality.
Package blockstrangers silently drops incoming S2S messages from JIDs that are not in the recipient's roster.
Package blockstrangers silently drops incoming S2S messages from JIDs that are not in the recipient's roster.
Package certwatch monitors TLS certificate expiry for all configured hosts.
Package certwatch monitors TLS certificate expiry for all configured hosts.
Package motd implements a Message of the Day module.
Package motd implements a Message of the Day module.
Package mucrtbl implements a MUC Real-Time Block List.
Package mucrtbl implements a MUC Real-Time Block List.
Package offline provides XMPP functionality.
Package offline provides XMPP functionality.
Package prescounter implements presence subscription flood detection.
Package prescounter implements presence subscription flood detection.
Package roster provides XMPP functionality.
Package roster provides XMPP functionality.
Package sharedroster implements server-managed shared roster groups (mod_shared_roster).
Package sharedroster implements server-managed shared roster groups (mod_shared_roster).
Package webregister provides a simple HTML registration page.
Package webregister provides a simple HTML registration page.
Package xep0004 implements XEP-0004: Data Forms.
Package xep0004 implements XEP-0004: Data Forms.
Package xep0012 provides XMPP functionality.
Package xep0012 provides XMPP functionality.
Package xep0016 implements XEP-0016: Privacy Lists.
Package xep0016 implements XEP-0016: Privacy Lists.
Package xep0030 implements XEP-0030 Service Discovery.
Package xep0030 implements XEP-0030 Service Discovery.
Package xep0033 implements Extended Stanza Addressing (XEP-0033) feature advertisement.
Package xep0033 implements Extended Stanza Addressing (XEP-0033) feature advertisement.
Package xep0045 provides XMPP functionality.
Package xep0045 provides XMPP functionality.
Package xep0049 provides XMPP functionality.
Package xep0049 provides XMPP functionality.
Package xep0050 provides XMPP functionality.
Package xep0050 provides XMPP functionality.
Package xep0054 provides XMPP functionality.
Package xep0054 provides XMPP functionality.
Package xep0055 implements Jabber Search (XEP-0055).
Package xep0055 implements Jabber Search (XEP-0055).
Package xep0059 implements XEP-0059: Result Set Management.
Package xep0059 implements XEP-0059: Result Set Management.
Package xep0060 implements XEP-0060: Publish-Subscribe.
Package xep0060 implements XEP-0060: Publish-Subscribe.
Package xep0065 implements XEP-0065: SOCKS5 Bytestreams.
Package xep0065 implements XEP-0065: SOCKS5 Bytestreams.
Package xep0066 implements XEP-0066: Out of Band Data.
Package xep0066 implements XEP-0066: Out of Band Data.
Package xep0077 implements XEP-0077: In-Band Registration.
Package xep0077 implements XEP-0077: In-Band Registration.
Package xep0084 implements XEP-0084: User Avatar.
Package xep0084 implements XEP-0084: User Avatar.
Package xep0085 implements XEP-0085: Chat State Notifications.
Package xep0085 implements XEP-0085: Chat State Notifications.
Package xep0092 implements XEP-0092: Software Version.
Package xep0092 implements XEP-0092: Software Version.
Package xep0115 implements XEP-0115: Entity Capabilities.
Package xep0115 implements XEP-0115: Entity Capabilities.
Package xep0133 provides XMPP functionality.
Package xep0133 provides XMPP functionality.
Package xep0153 implements XEP-0153: vCard-Based Avatars.
Package xep0153 implements XEP-0153: vCard-Based Avatars.
Package xep0156 implements XEP-0156: Discovering Alternative XMPP Connection Methods.
Package xep0156 implements XEP-0156: Discovering Alternative XMPP Connection Methods.
Package xep0157 implements XEP-0157: Contact Addresses for XMPP Services.
Package xep0157 implements XEP-0157: Contact Addresses for XMPP Services.
Package xep0178 implements XEP-0178: Best Practices for Use of SASL EXTERNAL.
Package xep0178 implements XEP-0178: Best Practices for Use of SASL EXTERNAL.
Package xep0184 implements XEP-0184: Message Delivery Receipts.
Package xep0184 implements XEP-0184: Message Delivery Receipts.
Package xep0191 provides XMPP functionality.
Package xep0191 provides XMPP functionality.
Package xep0198 provides XMPP functionality.
Package xep0198 provides XMPP functionality.
queue
Package streamqueue provides XMPP functionality.
Package streamqueue provides XMPP functionality.
Package xep0199 provides XMPP functionality.
Package xep0199 provides XMPP functionality.
Package xep0202 provides XMPP functionality.
Package xep0202 provides XMPP functionality.
Package xep0206 provides XMPP functionality.
Package xep0206 provides XMPP functionality.
Package xep0215 implements XEP-0215: External Service Discovery.
Package xep0215 implements XEP-0215: External Service Discovery.
Package xep0227 implements XEP-0227: Portable Import/Export Format for XMPP-IM Servers.
Package xep0227 implements XEP-0227: Portable Import/Export Format for XMPP-IM Servers.
Package xep0231 implements Bits of Binary (XEP-0231) feature advertisement.
Package xep0231 implements Bits of Binary (XEP-0231) feature advertisement.
Package xep0279 implements XEP-0279: Server IP Check.
Package xep0279 implements XEP-0279: Server IP Check.
Package xep0280 implements XEP-0280: Message Carbons.
Package xep0280 implements XEP-0280: Message Carbons.
Package xep0292 implements XEP-0292: vCard4 Over XMPP.
Package xep0292 implements XEP-0292: vCard4 Over XMPP.
Package xep0308 provides XMPP functionality.
Package xep0308 provides XMPP functionality.
Package xep0313 implements XEP-0313: Message Archive Management.
Package xep0313 implements XEP-0313: Message Archive Management.
Package xep0328 implements JID Prep (XEP-0328) feature advertisement.
Package xep0328 implements JID Prep (XEP-0328) feature advertisement.
Package xep0333 implements XEP-0333: Displayed Markers.
Package xep0333 implements XEP-0333: Displayed Markers.
Package xep0352 implements XEP-0352: Client State Indication.
Package xep0352 implements XEP-0352: Client State Indication.
Package xep0353 implements XEP-0353: Jingle Message Initiation.
Package xep0353 implements XEP-0353: Jingle Message Initiation.
Package xep0355 implements Namespace Delegation (XEP-0355) feature advertisement.
Package xep0355 implements Namespace Delegation (XEP-0355) feature advertisement.
Package xep0356 implements Privileged Entity (XEP-0356) feature advertisement.
Package xep0356 implements Privileged Entity (XEP-0356) feature advertisement.
Package xep0357 implements XEP-0357 Push Notifications.
Package xep0357 implements XEP-0357 Push Notifications.
Package xep0359 implements XEP-0359: Unique and Stable Stanza IDs.
Package xep0359 implements XEP-0359: Unique and Stable Stanza IDs.
Package xep0363 implements XEP-0363: HTTP File Upload.
Package xep0363 implements XEP-0363: HTTP File Upload.
Package xep0369 implements MIX (XEP-0369/XEP-0405) — Mediated Information eXchange.
Package xep0369 implements MIX (XEP-0369/XEP-0405) — Mediated Information eXchange.
Package xep0377 implements XEP-0377: Spam Reporting.
Package xep0377 implements XEP-0377: Spam Reporting.
Package xep0380 implements XEP-0380: Explicit Message Encryption.
Package xep0380 implements XEP-0380: Explicit Message Encryption.
Package xep0392 implements XEP-0392: Consistent Color Generation.
Package xep0392 implements XEP-0392: Consistent Color Generation.
Package xep0394 implements XEP-0394: Message Markup.
Package xep0394 implements XEP-0394: Message Markup.
Package xep0397 implements XEP-0397: Instant Stream Resumption.
Package xep0397 implements XEP-0397: Instant Stream Resumption.
Package xep0398 implements XEP-0398: User Avatar to vCard-Based Avatars Conversion.
Package xep0398 implements XEP-0398: User Avatar to vCard-Based Avatars Conversion.
Package xep0401 provides XMPP functionality.
Package xep0401 provides XMPP functionality.
Package xep0411 implements XEP-0411: Bookmarks Conversion.
Package xep0411 implements XEP-0411: Bookmarks Conversion.
Package xep0421 provides XMPP functionality.
Package xep0421 provides XMPP functionality.
Package xep0424 implements XEP-0424: Message Retraction.
Package xep0424 implements XEP-0424: Message Retraction.
Package xep0425 provides XMPP functionality.
Package xep0425 provides XMPP functionality.
Package xep0433 implements XEP-0433: Extended Channel Search.
Package xep0433 implements XEP-0433: Extended Channel Search.
Package xep0440 implements XEP-0440: SASL Channel-Binding Type Capability.
Package xep0440 implements XEP-0440: SASL Channel-Binding Type Capability.
Package xep0441 implements MAM Extended (XEP-0441) feature advertisement.
Package xep0441 implements MAM Extended (XEP-0441) feature advertisement.
Package xep0444 implements XEP-0444: Message Reactions.
Package xep0444 implements XEP-0444: Message Reactions.
Package xep0453 implements XEP-0453: DOAP usage in XMPP.
Package xep0453 implements XEP-0453: DOAP usage in XMPP.
Package xep0461 provides XMPP functionality.
Package xep0461 provides XMPP functionality.
Package xep0482 provides XMPP functionality.
Package xep0482 provides XMPP functionality.
Package xep0485 implements XEP-0485: PubSub Server Information.
Package xep0485 implements XEP-0485: PubSub Server Information.
Package xep0490 implements XEP-0490: Message Displayed Synchronization.
Package xep0490 implements XEP-0490: Message Displayed Synchronization.

Jump to

Keyboard shortcuts

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