fix connection

This commit is contained in:
octeep 2022-03-28 23:46:15 +01:00 committed by octeep
parent 7a02954897
commit 8eaab7d459

View file

@ -85,18 +85,15 @@ func parseBase64KeyToHex(section *ini.Section, keyName string) (string, error) {
if err != nil { if err != nil {
return "", err return "", err
} }
println(keyName) result, err := encodeBase64ToHex(key)
println(key)
result, err := EncodeBase64ToHex(key)
if err != nil { if err != nil {
println(keyName)
return result, err return result, err
} }
return result, nil return result, nil
} }
func EncodeBase64ToHex(key string) (string, error) { func encodeBase64ToHex(key string) (string, error) {
decoded, err := base64.StdEncoding.DecodeString(key) decoded, err := base64.StdEncoding.DecodeString(key)
if err != nil { if err != nil {
return "", errors.New("invalid base64 string: " + key) return "", errors.New("invalid base64 string: " + key)
@ -125,6 +122,23 @@ func parseCommaSeperatedNetIP(section *ini.Section, keyName string) ([]netip.Add
return ips, nil return ips, nil
} }
func resolveIP(ip string) (*net.IPAddr, error) {
return net.ResolveIPAddr("ip", ip)
}
func resolveIPPAndPort(addr string) (string, error) {
host, port, err := net.SplitHostPort(addr)
if err != nil {
return "", err
}
ip, err := resolveIP(host)
if err != nil {
return "", err
}
return net.JoinHostPort(ip.String(), port), nil
}
func ParseDeviceConfig(cfg *ini.File) (*DeviceConfig, error) { func ParseDeviceConfig(cfg *ini.File) (*DeviceConfig, error) {
config := &DeviceConfig{ config := &DeviceConfig{
PreSharedKey: "0000000000000000000000000000000000000000000000000000000000000000", PreSharedKey: "0000000000000000000000000000000000000000000000000000000000000000",
@ -146,8 +160,7 @@ func ParseDeviceConfig(cfg *ini.File) (*DeviceConfig, error) {
config.PeerPublicKey = decoded config.PeerPublicKey = decoded
if sectionKey, err := section.GetKey("PreSharedKey"); err == nil { if sectionKey, err := section.GetKey("PreSharedKey"); err == nil {
println("break:") value, err := encodeBase64ToHex(sectionKey.String())
value, err := EncodeBase64ToHex(sectionKey.String())
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -174,6 +187,10 @@ func ParseDeviceConfig(cfg *ini.File) (*DeviceConfig, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
decoded, err = resolveIPPAndPort(decoded)
if err != nil {
return nil, err
}
config.PeerEndpoint = decoded config.PeerEndpoint = decoded
selfEndpoint, err := parseCommaSeperatedNetIP(section, "SelfEndpoint") selfEndpoint, err := parseCommaSeperatedNetIP(section, "SelfEndpoint")