app: Start wpa_supplicant only when Ethernet has no DHCP lease
Probe the configured Ethernet interface (default eth0, overridable via -ethernet-interface) at startup. If no DHCP-assigned IPv4 is present, start the wpa_supplicant service so the WiFi backend has something to talk to; otherwise leave it alone and rely on the wired uplink.
This commit is contained in:
parent
70140bc289
commit
d57c08a6c4
4 changed files with 82 additions and 20 deletions
|
|
@ -9,17 +9,18 @@ import (
|
|||
)
|
||||
|
||||
type Config struct {
|
||||
Bind string
|
||||
WifiInterface string
|
||||
HotspotInterface string
|
||||
WifiBackend string
|
||||
StationBackend string // "arp", "dhcp", or "hostapd"
|
||||
DHCPLeasesPath string
|
||||
ARPTablePath string
|
||||
SyslogEnabled bool
|
||||
SyslogPath string
|
||||
SyslogFilter []string
|
||||
SyslogSource string
|
||||
Bind string
|
||||
WifiInterface string
|
||||
HotspotInterface string
|
||||
EthernetInterface string
|
||||
WifiBackend string
|
||||
StationBackend string // "arp", "dhcp", or "hostapd"
|
||||
DHCPLeasesPath string
|
||||
ARPTablePath string
|
||||
SyslogEnabled bool
|
||||
SyslogPath string
|
||||
SyslogFilter []string
|
||||
SyslogSource string
|
||||
}
|
||||
|
||||
// ConsolidateConfig fills an Options struct by reading configuration from
|
||||
|
|
@ -29,15 +30,16 @@ type Config struct {
|
|||
func ConsolidateConfig() (opts *Config, err error) {
|
||||
// Define defaults options
|
||||
opts = &Config{
|
||||
Bind: "127.0.0.1:8080",
|
||||
WifiInterface: "wlan0",
|
||||
HotspotInterface: "wlan1",
|
||||
DHCPLeasesPath: "/var/lib/dhcp/dhcpd.leases",
|
||||
ARPTablePath: "/proc/net/arp",
|
||||
SyslogEnabled: false,
|
||||
SyslogPath: "/var/log/messages",
|
||||
SyslogFilter: []string{"daemon.info wpa_supplicant:", "daemon.info iwd:", "daemon.info hostapd:"},
|
||||
SyslogSource: "iwd",
|
||||
Bind: "127.0.0.1:8080",
|
||||
WifiInterface: "wlan0",
|
||||
HotspotInterface: "wlan1",
|
||||
EthernetInterface: "eth0",
|
||||
DHCPLeasesPath: "/var/lib/dhcp/dhcpd.leases",
|
||||
ARPTablePath: "/proc/net/arp",
|
||||
SyslogEnabled: false,
|
||||
SyslogPath: "/var/log/messages",
|
||||
SyslogFilter: []string{"daemon.info wpa_supplicant:", "daemon.info iwd:", "daemon.info hostapd:"},
|
||||
SyslogSource: "iwd",
|
||||
}
|
||||
|
||||
declareFlags(opts)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue