diff --git a/DeviceStatistics.go b/DeviceStatistics.go index 28439c6..5beb209 100644 --- a/DeviceStatistics.go +++ b/DeviceStatistics.go @@ -21,6 +21,8 @@ type DeviceStatistics interface { // Refresh rate of the rest of properties of this interface. The properties are guaranteed to be refreshed each RefreshRateMs milliseconds in case the underlying counter has changed too. If zero, there is no guaranteed refresh rate of the properties. GetPropertyRefreshRateMs() (uint32, error) + SetPropertyRefreshRateMs(uint32) (error) + // Number of transmitted bytes GetPropertyTxBytes() (uint64, error) @@ -45,6 +47,10 @@ func (d *deviceStatistics) GetPropertyRefreshRateMs() (uint32, error) { return d.getUint32Property(DeviceStatisticsPropertyRefreshRateMs) } +func (d *deviceStatistics) SetPropertyRefreshRateMs(rate uint32) (error) { + return d.setProperty(DeviceStatisticsPropertyRefreshRateMs, rate) +} + func (d *deviceStatistics) GetPropertyTxBytes() (uint64, error) { return d.getUint64Property(DeviceStatisticsPropertyTxBytes) } diff --git a/IP6Config.go b/IP6Config.go index 55dffcf..8f46acd 100644 --- a/IP6Config.go +++ b/IP6Config.go @@ -63,7 +63,7 @@ type IP6Config interface { GetPropertyRouteData() ([]IP6RouteData, error) // GetNameservers gets the nameservers in use. - GetPropertyNameservers() ([]string, error) + GetPropertyNameservers() ([][]byte, error) // A list of domains this address belongs to. GetPropertyDomains() ([]string, error) @@ -169,16 +169,16 @@ func (c *ip6Config) GetPropertyRouteData() ([]IP6RouteData, error) { return routes, nil } -func (c *ip6Config) GetPropertyNameservers() ([]string, error) { +func (c *ip6Config) GetPropertyNameservers() ([][]byte, error) { nameservers, err := c.getSliceSliceByteProperty(IP6ConfigPropertyNameservers) - ret := make([]string, len(nameservers)) + ret := make([][]byte, len(nameservers)) if err != nil { return ret, err } for i, nameserver := range nameservers { - ret[i] = string(nameserver) + ret[i] = nameserver } return ret, nil diff --git a/NetworkManager.go b/NetworkManager.go index 9d7da67..4d96b65 100644 --- a/NetworkManager.go +++ b/NetworkManager.go @@ -367,12 +367,26 @@ func (nm *networkManager) State() (state NmState, err error) { } func (nm *networkManager) CheckpointCreate(devices []Device, rollbackTimeout uint32, flags []NmCheckpointCreateFlags) (cp Checkpoint, err error) { - intFlags := 0 + var intFlags uint32 = 0 for _, flag := range flags { - intFlags |= int(flag) + intFlags |= uint32(flag) } - err = nm.callWithReturn(&cp, NetworkManagerCheckpointCreate, rollbackTimeout, intFlags) + var devicePaths []dbus.ObjectPath + if len(devices) > 0 { + devicePaths := []dbus.ObjectPath{} + for _, device := range devices { + devicePaths = append(devicePaths, device.GetPath()) + } + } + + var checkpointPath dbus.ObjectPath + err = nm.callWithReturn(&checkpointPath, NetworkManagerCheckpointCreate, devicePaths, rollbackTimeout, intFlags) + if err != nil { + return + } + + cp, err = NewCheckpoint(checkpointPath) return } @@ -425,7 +439,7 @@ func (nm *networkManager) GetPropertyAllDevices() ([]Device, error) { } func (nm *networkManager) GetPropertyCheckpoints() ([]Checkpoint, error) { - checkpointsPaths, err := nm.getSliceObjectProperty(NetworkManagerPropertyAllDevices) + checkpointsPaths, err := nm.getSliceObjectProperty(NetworkManagerPropertyCheckpoints) if err != nil { return nil, err } diff --git a/utils.go b/utils.go index 6f53f6b..1a2d3dc 100644 --- a/utils.go +++ b/utils.go @@ -58,6 +58,11 @@ func (d *dbusBase) getProperty(iface string) (interface{}, error) { return variant.Value(), err } +func (d *dbusBase) setProperty(iface string, value interface{}) (error) { + err := d.obj.SetProperty(iface, dbus.MakeVariant(value)) + return err +} + func (d *dbusBase) getObjectProperty(iface string) (value dbus.ObjectPath, err error) { prop, err := d.getProperty(iface) if err != nil {