package main import ( "encoding/json" "io" "log" "os" ) type AbstractConfig struct { MulticastConfig struct { MIPAddr string `json:"MIpAddr"` MPort string `json:"MPort"` MaxDatagramSize int `json:"MaxDatagramSize"` } `json:"MulticastConfig"` InterfaceConfig struct { ExistingInterface string `json:"ExistingInterface"` BridgeIPCIDR string `json:"BridgeIpCIDR"` } `json:"InterfaceConfig"` Debug bool `json:"debug"` } var a AbstractConfig func init() { //reading json file file, err := os.ReadFile("zoreide.json") if err != nil { log.Println("Cannot open config file", err.Error()) os.Exit(1) } err = json.Unmarshal([]byte(file), &a) if err != nil { log.Println("Cannot marshal json: ", err.Error()) os.Exit(1) } MulticastEntity.MIpAddr = a.MulticastConfig.MIPAddr MulticastEntity.MPort = a.MulticastConfig.MPort MulticastEntity.MaxDatagramSize = numberlenght ZoreideBridge.BridgeIpCIDR = a.InterfaceConfig.BridgeIPCIDR ZoreideBridge.ExistingInterface = a.InterfaceConfig.ExistingInterface ZoreideBridge.IsActive = false if !a.Debug { log.SetOutput(io.Discard) } log.Println("Inizialized Generic Config: ", a) log.Println("Inizialized Interface Config: ", ZoreideBridge) log.Println("Inizialized Multicast Config: ", MulticastEntity) }