Преглед изворни кода

Propagate hostname from the secret

tags/1.0^2
9seconds пре 6 година
родитељ
комит
fd8506c82a
1 измењених фајлова са 14 додато и 3 уклоњено
  1. 14
    3
      config/config.go

+ 14
- 3
config/config.go Прегледај датотеку

167
 	case len(C.Secret) == 1+SimpleSecretLength && bytes.HasPrefix(C.Secret, []byte{0xdd}):
167
 	case len(C.Secret) == 1+SimpleSecretLength && bytes.HasPrefix(C.Secret, []byte{0xdd}):
168
 		C.SecretMode = SecretModeSecured
168
 		C.SecretMode = SecretModeSecured
169
 		C.Secret = bytes.TrimPrefix(C.Secret, []byte{0xdd})
169
 		C.Secret = bytes.TrimPrefix(C.Secret, []byte{0xdd})
170
-	case len(C.Secret) == SimpleSecretLength:
171
-		C.SecretMode = SecretModeSimple
172
-	case bytes.HasPrefix(C.Secret, []byte{0xee}):
170
+	case len(C.Secret) > SimpleSecretLength && bytes.HasPrefix(C.Secret, []byte{0xee}):
173
 		C.SecretMode = SecretModeTLS
171
 		C.SecretMode = SecretModeTLS
174
 		secret := bytes.TrimPrefix(C.Secret, []byte{0xee})
172
 		secret := bytes.TrimPrefix(C.Secret, []byte{0xee})
175
 		C.Secret = secret[:SimpleSecretLength]
173
 		C.Secret = secret[:SimpleSecretLength]
176
 		C.CloakHost = string(secret[SimpleSecretLength:])
174
 		C.CloakHost = string(secret[SimpleSecretLength:])
175
+	case len(C.Secret) == SimpleSecretLength:
176
+		C.SecretMode = SecretModeSimple
177
 	default:
177
 	default:
178
 		return errors.New("incorrect secret")
178
 		return errors.New("incorrect secret")
179
 	}
179
 	}
180
 
180
 
181
+	if C.CloakHost != "" {
182
+		addrs, err := net.LookupHost(C.CloakHost)
183
+		if err != nil {
184
+			return fmt.Errorf("cannot resolve address of %s host: %w", C.CloakHost, err)
185
+		}
186
+
187
+		if len(addrs) == 0 {
188
+			return fmt.Errorf("no known ip addresses for the host %s", C.CloakHost)
189
+		}
190
+	}
191
+
181
 	return nil
192
 	return nil
182
 }
193
 }
183
 
194
 

Loading…
Откажи
Сачувај