Update service to reinitialize USB network interface after changes to USB gadget

This commit is contained in:
mame82 2018-06-15 16:28:28 +00:00
parent 0c7a9f6bf1
commit 4154a82def
4 changed files with 25 additions and 18 deletions

View File

@ -33,10 +33,9 @@ func main() {
log.Fatalf("Error while setting up the default gadget: %v", err)
}
err = service.InitDefaultNetworkSettings()
if err != nil {
log.Fatalf("Error while applying default network settings: %v", err)
}
service.DeployWifiSettings(service.GetDefaultWiFiSettings())
service.InitLed(false) //Set LED to manual trigger
service.InitDefaultLEDSettings()

View File

@ -13,21 +13,23 @@ import (
"errors"
)
var (
StoredNetworkSetting map[string]*pb.EthernetInterfaceSettings = make(map[string]*pb.EthernetInterfaceSettings)
)
func InitDefaultNetworkSettings() (err error) {
//ToDo: declare managed interfaces to not check from hand
usbEthActive,_ := CheckInterfaceExistence(USB_ETHERNET_BRIDGE_NAME)
if usbEthActive {
err = ConfigureInterface(GetDefaultNetworkSettingsUSB())
if err != nil { return }
}
func init() {
//preinitialize Default settings for "wlan0" and USB_ETHERNET_BRIDGE_NAME ("usbeth")
StoredNetworkSetting[USB_ETHERNET_BRIDGE_NAME] = GetDefaultNetworkSettingsUSB()
StoredNetworkSetting["wlan0"] = GetDefaultNetworkSettingsWiFi()
}
wifiEthActive, _ := CheckInterfaceExistence("wlan0")
if wifiEthActive {
err = ConfigureInterface(GetDefaultNetworkSettingsWiFi())
if err != nil { return }
func ReInitNetworkInterface(ifName string) (err error) {
if settings, existing := StoredNetworkSetting[ifName]; existing {
log.Printf("Redeploying stored Network settings for interface '%s' ...\n", ifName)
return ConfigureInterface(settings)
} else {
return errors.New(fmt.Sprintf("No stored interface settings found for '%s'\n", ifName))
}
return
}
func ParseIPv4Mask(maskstr string) (net.IPMask, error) {
@ -190,5 +192,8 @@ func ConfigureInterface(settings *pb.EthernetInterfaceSettings) (err error) {
}
//Store latest settings
StoredNetworkSetting[settings.Name] = settings
return nil
}

View File

@ -168,7 +168,7 @@ func pollForUSBEthernet(timeout time.Duration) error {
}
func InitDefaultGadgetSettings() (err error) {
err = DeployGadgetSettings(GetDefaultGadgetSettings())
err = DeployGadgetSettings(GetDefaultGadgetSettings()) //Deploy default settings to ConfigFS
if err != nil { return }
GadgetSettingsState = GetDefaultGadgetSettings() //populate settings state with same values
return nil
@ -590,6 +590,8 @@ func DeployGadgetSettings(settings pb.GadgetSettings) error {
//add USBEthernet bridge including the usb interfaces
log.Printf("... creating network bridge for USB ethernet devices")
addUSBEthernetBridge()
log.Printf("... checking for stored network interface settings for USB ethernet")
ReInitNetworkInterface(USB_ETHERNET_BRIDGE_NAME)
} else {
return err
}

View File

@ -142,7 +142,8 @@ func DeployWifiSettings(ws *pb.WiFiSettings) (err error) {
}
log.Printf("... WiFi settings deployed successfully\n")
log.Printf("... WiFi settings deployed successfully, checking for stored interface configuration...\n")
ReInitNetworkInterface(ifName)
return nil
}