diff --git a/netclient/functions/list.go b/netclient/functions/list.go index 1085b0ac..3212d8b2 100644 --- a/netclient/functions/list.go +++ b/netclient/functions/list.go @@ -15,13 +15,13 @@ import ( // Peer - the peer struct for list type Peer struct { - Name string `json:"name,omitempty"` - Interface string `json:"interface,omitempty"` - PrivateIPv4 string `json:"private_ipv4,omitempty"` - PrivateIPv6 string `json:"private_ipv6,omitempty"` - PublicKey string `json:"public_key,omitempty"` - PublicEndpoint string `json:"public_endpoint,omitempty"` - Addresses string `json:"addresses,omitempty"` + Name string `json:"name,omitempty"` + Interface string `json:"interface,omitempty"` + PrivateIPv4 string `json:"private_ipv4,omitempty"` + PrivateIPv6 string `json:"private_ipv6,omitempty"` + PublicKey string `json:"public_key,omitempty"` + PublicEndpoint string `json:"public_endpoint,omitempty"` + Addresses []address `json:"addresses,omitempty"` } // Network - the local node network representation for list command @@ -32,6 +32,11 @@ type Network struct { Peers []Peer `json:"peers"` } +type address struct { + CIDR string `json:"cidr,omitempty"` + IP string `json:"ip,omitempty"` +} + // List - lists the current peers for the local node with name and node ID func List(network string) error { nets := []Network{} @@ -123,12 +128,13 @@ func getPeers(network string) ([]Peer, error) { peers := []Peer{} for _, peer := range nodeGET.Peers { - var addresses = "" + var addresses = []address{} for j := range peer.AllowedIPs { - addresses += peer.AllowedIPs[j].String() - if j < len(peer.AllowedIPs)-1 { - addresses += "," + newAddress := address{ + CIDR: peer.AllowedIPs[j].String(), + IP: peer.AllowedIPs[j].IP.String(), } + addresses = append(addresses, newAddress) } peers = append(peers, Peer{ PublicKey: peer.PublicKey.String(),