fork of indigo with slightly nicer lexgen

rainbow: improve nextCrawler arg parsing

Changed files
+16 -11
splitter
+16 -11
splitter/splitter.go
··· 44 45 upstreamClient *http.Client 46 peerClient *http.Client 47 - nextCrawlers []*url.URL 48 } 49 50 type SplitterConfig struct { ··· 105 logger = slog.Default().With("system", "splitter") 106 } 107 108 - var nextCrawlerURLs []*url.URL 109 - if len(nextCrawlers) > 0 { 110 - nextCrawlerURLs = make([]*url.URL, len(nextCrawlers)) 111 - for i, tu := range nextCrawlers { 112 - var err error 113 - nextCrawlerURLs[i], err = url.Parse(tu) 114 - if err != nil { 115 - return nil, fmt.Errorf("failed to parse next-crawler url: %w", err) 116 - } 117 - logger.Info("configuring relay for requestCrawl", "host", nextCrawlerURLs[i]) 118 } 119 } 120 121 _, err := url.Parse(conf.UpstreamHostHTTP())
··· 44 45 upstreamClient *http.Client 46 peerClient *http.Client 47 + nextCrawlers []url.URL 48 } 49 50 type SplitterConfig struct { ··· 105 logger = slog.Default().With("system", "splitter") 106 } 107 108 + var nextCrawlerURLs []url.URL 109 + for _, raw := range nextCrawlers { 110 + if raw == "" { 111 + continue 112 + } 113 + u, err := url.Parse(raw) 114 + if err != nil { 115 + return nil, fmt.Errorf("failed to parse next-crawler url: %w", err) 116 + } 117 + if u.Host == "" { 118 + return nil, fmt.Errorf("empty URL host for next crawler: %s", raw) 119 } 120 + nextCrawlerURLs = append(nextCrawlerURLs, *u) 121 + } 122 + if len(nextCrawlerURLs) > 0 { 123 + logger.Info("configured crawler forwarding", "crawlers", nextCrawlerURLs) 124 } 125 126 _, err := url.Parse(conf.UpstreamHostHTTP())