Created
August 23, 2019 21:05
-
-
Save parrotmac/68252b72da5ce760afe9d9b8356be1e4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"github.com/godbus/dbus" | |
"go.uber.org/zap" | |
) | |
const hotspotConnectionUUID = "45b366f6-e56c-4b46-8699-e5fb62ce292e" | |
const ( | |
serviceName = "org.freedesktop.NetworkManager" | |
settings = "org.freedesktop.NetworkManager.Settings" | |
settingsObjPath = "/org/freedesktop/NetworkManager/Settings" | |
) | |
var connData = map[string]interface{}{ | |
"type": "802-11-wireless", | |
"uuid": hotspotConnectionUUID, | |
"id": "AutomatedHotspot", | |
} | |
var wifiData = map[string]interface{}{ | |
"ssid": []byte("ThinkPad"), | |
"mode": "ap", | |
"band": "bg", | |
"channel": uint32(6), | |
} | |
var wifiSecData = map[string]interface{}{ | |
"key-mgmt": "wpa-psk", | |
"psk": "great-password", | |
} | |
var addrData = []map[string]interface{}{ | |
{ | |
"address": "172.24.1.1", | |
"prefix": uint32(24), | |
}, | |
} | |
var ipv4Data = map[string]interface{}{ | |
"method": "shared", | |
"address-data": addrData, | |
"gateway": "172.24.1.1", | |
} | |
var ipv6Data = map[string]interface{}{ | |
"method": "ignore", | |
} | |
var con = map[string]map[string]interface{} { | |
"connection": connData, | |
"802-11-wireless": wifiData, | |
"802-11-wireless-security": wifiSecData, | |
"ipv4": ipv4Data, | |
"ipv6": ipv6Data, | |
} | |
func main() { | |
logger := zap.NewExample() | |
bus, err := dbus.SystemBus() | |
if err != nil { | |
logger.Fatal("unable to get system bus", zap.Error(err)) | |
} | |
settingsObj := bus.Object(serviceName, settingsObjPath) | |
addRes := settingsObj.Call(settings + ".AddConnection", 0, con) | |
if addRes.Err != nil { | |
logger.Fatal("unable to add connection", zap.Error(err)) | |
} | |
logger.Info("add connection result", zap.Any("body", addRes.Body)) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment