Documentation
¶
Overview ¶
Package merge_listener_wrapper allows Caddy to listen on multiple listeners.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ListenerProvider ¶
type ListenerProvider lifecycler.LifeCyclable[func(net.Listener)]
ListenerProvider is implemented by modules in the "caddy.listeners.merge" namespace.
type MergeWrapper ¶
type MergeWrapper struct {
// ListenerRaw is a slice of JSON-encoded data representing listener configurations.
// These configurations are used to create the actual net.Listener instances.
// Listeners should implement [net.Listener] and be in the 'caddy.listeners.merge.listeners' namespace.
ListenerRaw []json.RawMessage `json:"listeners" caddy:"namespace=caddy.listeners.merge inline_key=listener"`
// contains filtered or unexported fields
}
MergeWrapper loads multiple [net.Listener]s and aggregates their [net.Conn]s into a single net.Listener. It allows caddy to accept connections from multiple sources.
func (*MergeWrapper) CaddyModule ¶
func (p *MergeWrapper) CaddyModule() caddy.ModuleInfo
CaddyModule implements caddy.Module.
func (*MergeWrapper) Cleanup ¶
func (p *MergeWrapper) Cleanup() (err error)
Cleanup implements caddy.CleanerUpper. All wrapped listeners are closed and the struct is cleared.
func (*MergeWrapper) Provision ¶
func (p *MergeWrapper) Provision(ctx caddy.Context) error
Provision implements caddy.Provisioner. It loads the listeners from their configs and asserts them to net.Listener. Any failed assertions will cause a panic.
func (*MergeWrapper) UnmarshalCaddyfile ¶
func (p *MergeWrapper) UnmarshalCaddyfile(d *caddyfile.Dispenser) error
UnmarshalCaddyfile implements caddyfile.Unmarshaler. Must have at least one listener to aggregate with the wrapped listener. `tls` should come specifically after any `merge` directives.
```
http caddyfile:
{
servers :443 {
listener_wrappers {
merge {
<submodule name> <submodule config>
}
tls
}
}
}
```
func (*MergeWrapper) WrapListener ¶
func (p *MergeWrapper) WrapListener(ls net.Listener) net.Listener
WrapListener implements caddy.ListenerWrapper. The listener passed in is closed by MergeWrapper during cleanup.