package nmcli import ( "AudioPlayer/nmcli/model" "context" nmcli_go "github.com/KunMengcode/nmcli-go" "github.com/KunMengcode/nmcli-go/device" "net/rpc" ) type DeviceInterface interface { Status(Request model.EmptyRequest, Reply *[]device.Status) error register() error } type Device struct { nmcli *nmcli_go.NMCli } func NewDevice(nmcli *nmcli_go.NMCli) DeviceInterface { return &Device{nmcli: nmcli} } func (receiver *Device) Status(Request model.EmptyRequest, Reply *[]device.Status) (err error) { var State []device.Status var FiltrationState []device.Status State, err = receiver.nmcli.Device.Status(context.Background()) for _, v := range State { if v.Device == "lo" { continue } FiltrationState = append(FiltrationState, v) } *Reply = FiltrationState if err != nil { return err } return nil } func (receiver *Device) register() error { return rpc.RegisterName("NetworkManager.Device", receiver) }