mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
Libnetwork passes a map[string]any to the bridge driver's Register function. This forces the daemon to convert its configuration into a map, and the driver to convert that map back into a struct. This is unnecessary complexity, and makes it harder to track down where and how bridge driver configuration fields are set. Refactor libnetwork to let the daemon register the bridge.Configuration directly through a new option `OptionBridgeConfig`. The bridge driver now takes a `Configuration` param that needs no special treatment. Signed-off-by: Albin Kerouanton <albinker@gmail.com>
27 lines
666 B
Go
27 lines
666 B
Go
package config
|
|
|
|
import (
|
|
"github.com/moby/moby/v2/daemon/libnetwork/drivers/bridge"
|
|
"github.com/moby/moby/v2/daemon/libnetwork/osl"
|
|
)
|
|
|
|
// PlatformConfig defines platform-specific configuration.
|
|
type PlatformConfig struct {
|
|
BridgeConfig bridge.Configuration
|
|
}
|
|
|
|
// OptionBridgeConfig returns an option setter for bridge driver config.
|
|
func OptionBridgeConfig(config bridge.Configuration) Option {
|
|
return func(c *Config) {
|
|
c.BridgeConfig = config
|
|
}
|
|
}
|
|
|
|
// optionExecRoot on Linux sets both the controller's ExecRoot and osl.basePath.
|
|
func optionExecRoot(execRoot string) Option {
|
|
return func(c *Config) {
|
|
c.ExecRoot = execRoot
|
|
osl.SetBasePath(execRoot)
|
|
}
|
|
}
|