module

package
v0.0.0-...-d4a0ffb Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2025 License: GPL-2.0 Imports: 4 Imported by: 8

README

The ipxbox server is constructed of modules. A module implements some kind of functionality on an IPX network - such a server or some kind of external connectivity.

Modules are given an IPX network that they can create nodes on for connectivity. This is usually the internal network in an ipxbox server, but it might be a client for a remote server instead. This allows modules to be run standalone, connecting to any dosbox protocol server.

Implementations of the module interface:

  • aggregate combines multiple modules into a single module
  • bridge connects the network to a real, physical network (using TAP or libpcap)
  • ipxpkt provides a bridge/router for the ipxpkt.com ethernet-over-IPX driver
  • pptp provides VPN "dial in" over the Point-to-Point Tunneling Protocol
  • qproxy makes external Quake servers appear on the network (as though they're on the local network segment)
  • server is the dosbox server itself!

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	NotNeeded        = errors.New("module exited with nothing to do")
	EarlyTermination = errors.New("module terminated unexpectedly")
)

Functions

This section is empty.

Types

type Module

type Module interface {
	// Initialize sets up the module, and in particular registers
	// any flags that it might use.
	Initialize()

	// Start activates the module.
	Start(ctx context.Context, params *Parameters) error
}

Module defines an interface for optional modules that can be part of an ipxbox server. A module can also be run standalone, connecting to a remote server instead.

func Optional

func Optional(m Module, enabled *bool) Module

Optional returns a module that wraps another module, only activating that module if the pointed-to variable is set to true.

type Parameters

type Parameters struct {
	// Network is the connection to the IPX network that the module should
	// use for communications.
	Network network.Network

	// Uplinkable is an IPX network implementation that the module can use
	// for direct connection into the network.
	Uplinkable network.Network

	// Logger should be used for reporting log messages.
	Logger *slog.Logger
}

Directories

Path Synopsis
Package aggregate implements a server module that contains other server modules.
Package aggregate implements a server module that contains other server modules.
Package bridge is a module that taps the internal network and bridges it to a physical network if one is configured.
Package bridge is a module that taps the internal network and bridges it to a physical network if one is configured.
Package ipxpkt implements a packet router that wraps Ethernet frames in IPX packets using the protocol from the IPXPKT.COM DOS packet driver.
Package ipxpkt implements a packet router that wraps Ethernet frames in IPX packets using the protocol from the IPXPKT.COM DOS packet driver.
Package qproxy implements a proxy client that makes Quake UDP servers available on an IPX network.
Package qproxy implements a proxy client that makes Quake UDP servers available on an IPX network.

Jump to

Keyboard shortcuts

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