embed types without alias properly

This commit is contained in:
Callan Bryant 2020-03-05 20:46:28 +00:00
parent 586292a25a
commit b7ed21f2ec
No known key found for this signature in database
GPG Key ID: C31FA9DF3ACBFFAA
4 changed files with 12 additions and 13 deletions

2
add.go
View File

@ -1,8 +1,8 @@
package dsnet
import (
"os"
"fmt"
"os"
"text/template"
)

View File

@ -20,7 +20,7 @@ type PeerConfig struct {
// Description of what the host is and/or does
Description string `validate:"required,gte=1,lte=255"`
// Internal VPN IP address. Added to AllowedIPs in server config as a /32
IP net.IP `validate:"required`
net.IP `validate:"required`
PublicKey JSONKey `validate:"required,len=44"`
PrivateKey JSONKey `json:"-"` // omitted from config!
PresharedKey JSONKey `validate:"required,len=44"`
@ -40,8 +40,8 @@ type DsnetConfig struct {
// IP network from which to allocate automatic sequential addresses
// Network is chosen randomly when not specified
Network JSONIPNet `validate:"required"`
IP net.IP `validate:"required"`
DNS net.IP `validate:"required"`
net.IP `validate:"required"`
DNS net.IP `validate:"required"`
// TODO Default subnets to route via VPN
ReportFile string `validate:"required"`
PrivateKey JSONKey `validate:"required,len=44"`
@ -111,7 +111,7 @@ func (conf *DsnetConfig) MustAddPeer(peer PeerConfig) {
}
func (conf *DsnetConfig) MustRemovePeer(hostname string) {
peerIndex := -1;
peerIndex := -1
for i, peer := range conf.Peers {
if peer.Hostname == hostname {
@ -129,7 +129,6 @@ func (conf *DsnetConfig) MustRemovePeer(hostname string) {
conf.Peers = conf.Peers[:len(conf.Peers)-1]
}
func (conf DsnetConfig) IPAllocated(IP net.IP) bool {
if IP.Equal(conf.IP) {
return true

View File

@ -8,7 +8,7 @@ import (
)
type JSONIPNet struct {
IPNet net.IPNet
net.IPNet
}
func (n JSONIPNet) MarshalJSON() ([]byte, error) {
@ -28,7 +28,7 @@ func (n *JSONIPNet) String() string {
}
type JSONKey struct {
Key wgtypes.Key
wgtypes.Key
}
func (k JSONKey) MarshalJSON() ([]byte, error) {

View File

@ -51,9 +51,9 @@ type DsnetReport struct {
// IP network from which to allocate automatic sequential addresses
// Network is chosen randomly when not specified
Network JSONIPNet
IP net.IP
DNS net.IP
Peers []PeerReport
net.IP
DNS net.IP
Peers []PeerReport
}
func GenerateReport(dev *wgtypes.Device, conf *DsnetConfig) DsnetReport {
@ -74,8 +74,8 @@ type PeerReport struct {
// Description of what the host is and/or does
Description string
// Internal VPN IP address. Added to AllowedIPs in server config as a /32
IP net.IP
Status Status
net.IP
Status
// TODO ExternalIP support (Endpoint)
//ExternalIP net.UDPAddr `validate:"required,udp4_addr"`
// TODO support routing additional networks (AllowedIPs)