in newtmgr/config/ble_config.go [65:117]
func ParseBleConnString(cs string) (*BleConfig, error) {
bc := NewBleConfig()
parts := strings.Split(cs, ",")
for _, p := range parts {
kv := strings.SplitN(p, "=", 2)
if len(kv) != 2 {
return nil, einvalBleConnString("expected comma-separated "+
"key=value pairs; no '=' in: %s", p)
}
k := kv[0]
v := kv[1]
var err error
switch k {
case "peer_addr_type":
bc.PeerAddrType, err = bledefs.BleAddrTypeFromString(v)
if err != nil {
return nil, einvalBleConnString("Invalid peer_addr_type: %s", v)
}
case "peer_addr":
bc.PeerAddr, err = bledefs.ParseBleAddr(v)
if err != nil {
return nil, einvalBleConnString("Invalid peer_addr; %s",
err.Error())
}
case "peer_name":
bc.PeerName = v
case "own_addr_type":
bc.OwnAddrType, err = bledefs.BleAddrTypeFromString(v)
if err != nil {
return nil, einvalBleConnString("Invalid own_addr_type: %s", v)
}
case "own_addr":
bc.OwnAddr, err = bledefs.ParseBleAddr(v)
if err != nil {
return nil, einvalBleConnString("Invalid own_addr; %s",
err.Error())
}
case "bhd_path":
bc.BlehostdPath = v
case "ctlr_path":
bc.ControllerPath = v
default:
return nil, einvalBleConnString("Unrecognized key: %s", k)
}
}
bc.HciIdx = nmutil.HciIdx
return bc, nil
}