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

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,17 +167,28 @@ func Init(options ...Opt) error { // nolint: gocyclo, funlen
167 167
 	case len(C.Secret) == 1+SimpleSecretLength && bytes.HasPrefix(C.Secret, []byte{0xdd}):
168 168
 		C.SecretMode = SecretModeSecured
169 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 171
 		C.SecretMode = SecretModeTLS
174 172
 		secret := bytes.TrimPrefix(C.Secret, []byte{0xee})
175 173
 		C.Secret = secret[:SimpleSecretLength]
176 174
 		C.CloakHost = string(secret[SimpleSecretLength:])
175
+	case len(C.Secret) == SimpleSecretLength:
176
+		C.SecretMode = SecretModeSimple
177 177
 	default:
178 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 192
 	return nil
182 193
 }
183 194
 

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