瀏覽代碼

fix OLLAMA_HOST parsing for ip6

Michael Yang 1 年之前
父節點
當前提交
9297ff8330
共有 1 個文件被更改,包括 8 次插入17 次删除
  1. 8 17
      cmd/cmd.go

+ 8 - 17
cmd/cmd.go

@@ -655,28 +655,19 @@ func generateBatch(cmd *cobra.Command, model string) error {
 }
 
 func RunServer(cmd *cobra.Command, _ []string) error {
-	host, port := "127.0.0.1", "11434"
-
-	parts := strings.Split(os.Getenv("OLLAMA_HOST"), ":")
-	if ip := net.ParseIP(parts[0]); ip != nil {
-		host = ip.String()
-	}
-
-	if len(parts) > 1 {
-		port = parts[1]
-	}
-
-	// deprecated: include port in OLLAMA_HOST
-	if p := os.Getenv("OLLAMA_PORT"); p != "" {
-		port = p
+	host, port, err := net.SplitHostPort(os.Getenv("OLLAMA_HOST"))
+	if err != nil {
+		host, port = "127.0.0.1", "11434"
+		if ip := net.ParseIP(os.Getenv("OLLAMA_HOST")); ip != nil {
+			host = ip.String()
+		}
 	}
 
-	err := initializeKeypair()
-	if err != nil {
+	if err := initializeKeypair(); err != nil {
 		return err
 	}
 
-	ln, err := net.Listen("tcp", fmt.Sprintf("%s:%s", host, port))
+	ln, err := net.Listen("tcp", net.JoinHostPort(host, port))
 	if err != nil {
 		return err
 	}